如果有人可以根据 Visual Studio 的 Code Metrics 规则向我解释以下两段代码之间的区别,我将不胜感激。如果我不封装所有内容,为什么可维护性指数会略有增加using ( )
?
样本 1(MI 得分 71)
public static String Sha1(String plainText)
{
using (SHA1Managed sha1 = new SHA1Managed())
{
Byte[] text = Encoding.Unicode.GetBytes(plainText);
Byte[] hashBytes = sha1.ComputeHash(text);
return Convert.ToBase64String(hashBytes);
}
}
样本 2 ( MI 分数 73 )
public static String Sha1(String plainText)
{
Byte[] text, hashBytes;
using (SHA1Managed sha1 = new SHA1Managed())
{
text = Encoding.Unicode.GetBytes(plainText);
hashBytes = sha1.ComputeHash(text);
}
return Convert.ToBase64String(hashBytes);
}
我理解指标在更广泛的背景和理解之外毫无意义,程序员应该谨慎行事。虽然我可以使用 将分数提高到 76 return Convert.ToBase64String(sha1.ComputeHash(Encoding.Unicode.GetBytes(plainText)))
,但我不应该这样做。我显然只是在玩数字,那时它真的不再具有可读性或可维护性。我很好奇这种情况下增加背后的逻辑可能是什么。这显然不是行数。