c# - 在大型代码库中查找字符串 == 运算符的用法

标签 c#

我收到了一个请求,希望研究在相当大的 C# 代码库中用 String.Equals() 替换所有字符串 == 运算符用法的可行性显式指定区分大小写的方法调用。

不过,我并没有找到一种方法来识别代码库中的所有事件。

  • 搜索“==”显然会找到除被比较的字符串之外的无数类型实例。
  • 似乎没有 StyleCop 规则可以找到它。
  • 也不是 ReSharper 规则。
  • 作为最后的手段,我尝试将程序集加载到 JustDecompile 中并找到 System.String.op_Equality 的所有用法,但这似乎没有在 LINQ 表达式中使用,例如 .Where(x => x.StringField == stringField)

所以我有点难过,想知道是否有人对如何搜索这些讨厌的比较有任何想法?

最佳答案

您可以使用 Resharper 找到所有用法。这是对我有用的:

  1. 右键单击代码中任意位置的字符串类型。点击前往声明
  2. Resharper 将从 .NET 框架打开 string.cs
  3. 向下滚动到 operator == 并右键单击,选择Find Usages

这需要一些时间,但您会得到一个很好的用法列表,在 TreeView 中排序。 我在 VS2010 中使用 Resharper 6.1 进行了尝试。

更新

有一种更简单的方法可以做到这一点:

  1. 在字符串比较中选择==
  2. 右键单击所选内容并选择高级查找用法
  3. 在查找下的对话框中,仅选中“Usages”并将范围设置为“Solution”以过滤掉其他库中的任何引用。

关于c# - 在大型代码库中查找字符串 == 运算符的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11754311/

相关文章:

c# - 使用反射获取字段的内存地址 (C#)

c# - .Net 垃圾收集器中写入障碍的详细信息

c# - 小游戏形式

c# - 此 Canon SDK C++ 代码片段的等效 C# 代码是什么?

c# - 使用 ODP.NET,从 Oracle 数据库表的列信息创建 C# 类/结构

C# 与 Unity 3D : How do I make a camera move around an object when user moves mouse

c# - 最后一个操作事件在返回单击时被触发

c# - IEqualityComparer GetHashCode 被调用但不等于

c# - 如何突出显示具有某种颜色的 TreeView 选定项目?

c# - 为什么 -2 % 360 在 C# 中给出 -2 而不是 358