C# .net-如何分析一个方法中有多少不同的代码路径
是否有(首选的免费)工具可以分析一种方法中可能有多少种不同的组合?我目前正在重构一个有很多if/switch语句的方法,我很好奇这个方法有多少种不同的执行方式 假设我有一个简单的方法:C# .net-如何分析一个方法中有多少不同的代码路径,c#,.net,code-coverage,code-analysis,C#,.net,Code Coverage,Code Analysis,是否有(首选的免费)工具可以分析一种方法中可能有多少种不同的组合?我目前正在重构一个有很多if/switch语句的方法,我很好奇这个方法有多少种不同的执行方式 假设我有一个简单的方法: public void DoSomething(bool flag1, int value) { if (flag1) { if (value > 0) { Console.WriteLine("Flag1 & value &
public void DoSomething(bool flag1, int value)
{
if (flag1)
{
if (value > 0)
{
Console.WriteLine("Flag1 & value > 0");
return;
}
else
{
Console.WriteLine("Flag1 & value <= 0");
return;
}
}
elseif (value > 0 and value < 10)
{
Console.WriteLine("Flag1 is false and value between 0 & 10");
return;
}
if (value < 0)
{
Console.WriteLine("Flag1 = false & value <= 0");
return;
}
elseif(value = 0)
{
Console.WriteLine("Flag1 = false & value >= 10");
return;
}
Console.WriteLine("nothing else matched");
}
public void DoSomething(布尔标志1,int值)
{
如果(标志1)
{
如果(值>0)
{
控制台写入线(“Flag1&value>0”);
返回;
}
其他的
{
Console.WriteLine(“Flag1&value您正在寻找的指标是“圈复杂度”。虽然有一些免费工具,但我只使用了VS 2008 pro内置的指标,因此我无法判断它们,但这会使查找它们变得更容易
e、 g.
你需要圈复杂度。你的意思是,这个计算已经包含在VS 2010中,请查看MSDN。我一直在使用一个可以集成到VS2008和VS2010中的工具。它可以从中找到。是一个免费的附加组件,用于不久将不再免费的反射器。不知道它有多好,我得到了正确的版本与相比,您还可以使用工具(集成在Visual Studio 2010、2008、2005中)来计算.NET代码上的圈复杂度:
- 从源代码定义
- 从IL代码定义
如果您在没有相应源代码的情况下反编译程序集,则IL代码的圈复杂度非常有用。重复?在Visual Studio中启用代码覆盖率,这非常容易使用。选择“项目->属性->代码覆盖率”。您确定它包含在Pro版本中,我如何使用它?