Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .net-如何分析一个方法中有多少不同的代码路径_C#_.net_Code Coverage_Code Analysis - Fatal编程技术网

C# .net-如何分析一个方法中有多少不同的代码路径

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 &

是否有(首选的免费)工具可以分析一种方法中可能有多少种不同的组合?我目前正在重构一个有很多if/switch语句的方法,我很好奇这个方法有多少种不同的执行方式

假设我有一个简单的方法:

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版本中,我如何使用它?