gpt4 book ai didi

c# - 为什么这个可维护性指数会增加?

转载 作者:可可西里 更新时间:2023-11-01 03:14:37 25 4
gpt4 key购买 nike

如果有人能根据 Visual Studio 的代码指标规则向我解释以下两段代码之间的区别,我将不胜感激。如果我不将所有内容封装在 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);
}

我知道指标在更广泛的背景和理解之外毫无意义,程序员应该谨慎行事。虽然我可以使用 return Convert.ToBase64String(sha1.ComputeHash(Encoding.Unicode.GetBytes(plainText))) 将分数提高到 76,但我不应该这样做。很明显,我只是在玩数字,到那时它并没有真正更具可读性或可维护性。不过,我很好奇这种情况下增长背后的逻辑是什么。这显然不是行数。

最佳答案

将所有变量都放在顶部,这样您就知道函数中的内容更“可维护”,至少这是决定代码指标规则的人的想法。

这是真的吗?完全取决于编写代码的团队。从问题的语气来看,您似乎已经知道这一点,但是对几乎所有代码指标都持保留态度,它们是某人认为最好的,但对于外部团队而言可能并非如此微软...做对您的团队最有利的事情,而不是某些计算器告诉您的事情。

我不会做出对您和您的团队的编码性能有害的更改(除非是为了实际性能或改进错误处理等),您认为这些更改可读性较差,无法在指标板上获得一些分数。

综上所述,如果它给您非常的可维护性,则可能有一些东西值得研究或分解成更小的 block ,因为非常低的分数可能不太可接受,因为几乎任何团队。

关于c# - 为什么这个可维护性指数会增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2749082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com