У меня есть две функции выборки TestComplexityIf
и TestComplexitySwitch
. VisualStudio-2017 «Рассчитать метрики кода» сообщает о цикломатике c сложности 10 для функции с оператором switch
ad 7 для функции с if-else
. Интересно, как вычисляется сложность для TestComplexitySwitch ().
private static void TestComplexityIf(String arg)
{
if (arg == "a")
{ }
else if (arg == "b")
{ }
else if (arg == "c")
{ }
else if (arg == "d")
{ }
else if (arg == "d")
{ }
else if (arg == "f")
{ }
else if (arg == "g")
{ }
}
private static void TestComplexitySwitch(String arg)
{
switch (arg)
{
case "a":
break;
case "b":
break;
case "c":
break;
case "d":
break;
case "e":
break;
case "f":
break;
case "g":
break;
}
}
Кроме того, если я прокомментирую последний случай, сложность внезапно изменится на 6.
private static void TestComplexitySwitch(String arg)
{
switch (arg)
{
case "a":
break;
case "b":
break;
case "c":
break;
case "d":
break;
case "e":
break;
case "f":
break;
//case "g":
//break;
}
}