我收到了一个请求,希望研究在相当大的 C# 代码库中用 String.Equals()
替换所有字符串 ==
运算符用法的可行性显式指定区分大小写的方法调用。
不过,我并没有找到一种方法来识别代码库中的所有事件。
- 搜索“==”显然会找到除被比较的字符串之外的无数类型实例。
- 似乎没有 StyleCop 规则可以找到它。
- 也不是 ReSharper 规则。
- 作为最后的手段,我尝试将程序集加载到 JustDecompile 中并找到
System.String.op_Equality
的所有用法,但这似乎没有在 LINQ 表达式中使用,例如.Where(x => x.StringField == stringField)
所以我有点难过,想知道是否有人对如何搜索这些讨厌的比较有任何想法?
最佳答案
您可以使用 Resharper 找到所有用法。这是对我有用的:
- 右键单击代码中任意位置的字符串类型。点击前往声明。
- Resharper 将从 .NET 框架打开 string.cs
- 向下滚动到
operator ==
并右键单击,选择Find Usages
这需要一些时间,但您会得到一个很好的用法列表,在 TreeView 中排序。 我在 VS2010 中使用 Resharper 6.1 进行了尝试。
更新
有一种更简单的方法可以做到这一点:
- 在字符串比较中选择
==
- 右键单击所选内容并选择高级查找用法
- 在查找下的对话框中,仅选中“Usages”并将范围设置为“Solution”以过滤掉其他库中的任何引用。
关于c# - 在大型代码库中查找字符串 == 运算符的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11754311/