通过静态分析仪检查.NET Core Libraries源代码

加入
2019年8月15日
消息
16
编程经验
Beginner
.NET核心库是GitHub上最受欢迎的C#项目之一。它'几乎没有一个惊喜,因为它's widely known and used. Owing to this, an attempt to reveal the dark corners of the source code is becoming more captivating. So this is what was done with the help of the PVS-Studio static analyzer.

检测到的错误示例:

C#:
private SearchResultCollection FindAll(bool findMoreThanOne)
{
  searchResult = null;

  DirectoryEntry clonedRoot = null;
  if (_assertDefaultNamingContext == null)
  {
    clonedRoot = SearchRoot.CloneBrowsable();
  }
  else
  {
    clonedRoot = SearchRoot.CloneBrowsable();
  }
  ....
}


PVS-Studio 警告:V3004“那么”声明相当于“else”语句。 directorysearcher.cs 629.

无论_assertdefaultnamingcontext == null条件为true还是false,都将进行相同的操作,然后,如果语句的其他分支具有相同的机构。要么在分支中应该有另一个动作,或者您可以省略if语句,而不是混淆开发人员和分析器。

您可以了解更多关于其他检测到的错误 文章
 
最后编辑了主持人:

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
它看起来像你的IF语句是否在任何一个条件下产生替代输出?
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,731
地点
悉尼,澳大利亚
编程经验
10+
阅读您刚刚引用的链接,对您来说应该发出很大的意义。
我认为你可能误解了这个帖子的重点。它是提供信息而不是提出问题。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
是的,看起来如此。直到你指出,我没有注意到。

有点傻允许"tips"在人们主要提出支持问题的类别中发布。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,731
地点
悉尼,澳大利亚
编程经验
10+
有点傻允许"tips"在人们主要提出支持问题的类别中发布。
当发布了适当的前缀时,它们应该被标记为提示,以使其最初不明显。当我批准它时,我也应该修复,因此断层是共享的。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
故障如何共享?没有标签,我没有批准它,它像支持主题一样措辞。啊没问题。

也许考虑为提示和教程创建一个类别,并将所有提示主题移动到新类别。这样,它们不会与一般支持主题混合。它会使教程和提示应该发布,因此将两者以更有组织的方式分开。
 
最佳 底部