有没有一种方法可以检测/防止字符串与C#中的==进行比较?

有没有一种方法可以检测/防止字符串与C#中的==进行比较?,c#,compare,resharper,case-sensitive,code-inspection,C#,Compare,Resharper,Case Sensitive,Code Inspection,我想强调的是,当比较字符串时,我们会有意识地决定比较是区分大小写还是不区分大小写,因为系统中出现了几个由这个问题引起的错误 我知道在使用String.Equals()时可以强制使用StringComparison(例如) 但是我找不到一种方法来检测是否有人仅仅使用val1==val2 有什么想法吗?您可以重载==运算符,并在调用时抛出异常,或者按照您的意愿处理异常。不幸的是,我不认为使用==会引发异常。你可以很容易地编写自己的Roslyn分析器,尽管你可以编写自己的Roslyn分析器。我相信您只

我想强调的是,当比较字符串时,我们会有意识地决定比较是区分大小写还是不区分大小写,因为系统中出现了几个由这个问题引起的错误

我知道在使用String.Equals()时可以强制使用StringComparison(例如)

但是我找不到一种方法来检测是否有人仅仅使用val1==val2


有什么想法吗?

您可以重载==运算符,并在调用时抛出异常,或者按照您的意愿处理异常。不幸的是,我不认为使用
==
会引发异常。你可以很容易地编写自己的Roslyn分析器,尽管你可以编写自己的Roslyn分析器。我相信您只想对显示的文本执行此操作,任何使用隐藏字符串的内容(例如字典、枚举、名称等)都不会对
==
产生任何问题。问题不在于==比较,而在于缺乏测试。您应该编写可以验证代码是否正常工作的单元测试。测试文本是否有一些大写字母,另一个文本是否都是小写或大写,看看代码是否按照您希望的方式运行。您可以重载==运算符并在调用时抛出异常,或者按照您的意愿处理它。不幸的是,我不认为使用
==
会引发火灾。你可以很容易地编写自己的Roslyn分析器,尽管你可以编写自己的Roslyn分析器。我相信您只想对显示的文本执行此操作,任何使用隐藏字符串的内容(例如字典、枚举、名称等)都不会对
==
产生任何问题。问题不在于==比较,而在于缺乏测试。您应该编写可以验证代码是否正常工作的单元测试。测试文本是否有大写字母,以及文本是否为小写或大写字母,看看代码是否按照您希望的方式运行