我正在阅读C#中的字符串比较,我想知道:
我是否可以预定义进程/线程级别的比较信息不区分大小写,以便在比较两个字符串时直接使用==
?
答案 0 :(得分:8)
不,你不能。
==
运算符调用string.Equals
,它自己调用string.EqualsHelper
。
如您所见,它没有使用任何文化或比较设置(如Equals(String value, StringComparison comparisonType)
重载确实)。它只是按字符比较字符串。
您必须调用Equals
的重载才能获得所需的结果,这不是默认行为,并且无法更改,除非您可以使用自己的string
或string.Equals
运算符实现覆盖每个 ==
。
答案 1 :(得分:0)
不完全是:
您可以使用PostSharp创建属性并将其应用于程序集中的所有方法。
我很长时间没有使用PostSharp,所以我不能给你一个例子,但是可以做到。
我不喜欢这个想法,这可能会在将来导致很多麻烦。但这有可能并且接近你所问的。