评估时,我的代码的圈复杂度得分为10.什么是圈复杂度,任何人都可以提供有关降低以下代码复杂性的建议:
public override bool Validate(Control control, object value)
{
if (value == null && !_IsAllowNull)
{
ErrorText = "Please provided valid number without a decimal point.";
return false;
}
else
{
if (value.ToString().Contains("."))
{
ErrorText = "Decimal value is not allowed";
return false;
}
else
{
if (!value.IsNumber())
{
ErrorText = "Please provided valid number without a decimal point.";
return false;
}
else
{
if (value.ToInt() < _minValue || value.ToInt() > _maxValue)
{
ErrorText = "Value should not be greater than " + _maxValue + " or less than " + _minValue;
return false;
}
}
}
}
return true;
}
谢谢。
答案 0 :(得分:2)
由于您的验证检查返回false,因此您不需要else
部分,因此代码可以继续进行下一次检查:
public override bool Validate(Control control, object value)
{
if (value == null && !_IsAllowNull)
{
ErrorText = "Please provided valid number without a decimal point.";
return false;
}
if (value.ToString().Contains("."))
{
ErrorText = "Decimal value is not allowed";
return false;
}
if (!value.IsNumber())
{
ErrorText = "Please provided valid number without a decimal point.";
return false;
}
if (value.ToInt() < _minValue || value.ToInt() > _maxValue)
{
ErrorText = "Value should not be greater than " + _maxValue + " or less than " + _minValue;
return false;
}
return true;
}
答案 1 :(得分:1)
[[
答案 2 :(得分:1)
这样你的方法复杂性得分就达到了2
NULL