Я делаю некоторые тесты с метриками кода Visual Studio.Поскольку я могу вычислить цикломатическую сложность, каждый if
, while
, for
- операторы увеличивают сложность на 1. У меня есть следующий простой метод:
static bool ContainsNegative(int a, int b, int c, int d)
{
if (a < 0 || b < 0 || c < 0 || d < 0) return false;
return true;
}
Но для этого, CyclomaticСложность равна 5 вместо 2 (1 для метода + 1 для if
).Мой вопрос - это потому, что метрики кода вычисляют каждое условие в операторе if
как отдельный if
?Т.е. мой метод эквивалентен:
static bool ContainsNegative(int a, int b, int c, int d)
{
if (a < 0) return false;
if (b < 0) return false;
if (c < 0) return false;
if (d < 0) return false;
return true;
}
Вот экран с результатами:
Также есть список со всеми правилами, подробно описанными?
Спасибо!