【发布时间】:2011-06-03 00:02:22
【问题描述】:
我犯了一个错误,使用 == 来比较 IP 地址,而不是使用 C# 中 IPAddress 类的 equals() 方法,这将导致比较引用而不是值。 由于我目前正在处理的解决方案对于一个单人项目来说非常大(> 100.000 行源代码),我非常确定我的代码中仍然存在一些错误的陈述。
是否有可能告诉 Visual Studio 为我查找特定类上所有出现的 == 操作,以便我可以找到并清理错误的比较?
最好的问候,emi
【问题讨论】:
-
我不知道,但是您使用通用命名约定吗? IE。
IPAddress ipAddress还是IPAddress ip1?如果是这种情况,您可以使用通配符或正则表达式进行匹配。 -
也许可以编写一个 stylecop 或 fxcop 插件来找到这些。
-
@Brad:我通过通配符搜索发现了一些情况,但恐怕仍然存在networkInterfaceA.Addresses[0] == networkInterfaceB.Addresses[0]等形式的比较。 :(
-
@CodeInChaos 我认为这是一个不错的提示,我想到了一个 Resharper hack
标签: c# visual-studio-2008 ip-address equals