如何使字符串比较在进程/线程级别上不区分大小写?

时间:2014-10-23 11:39:44

标签: c# .net string globalization cultureinfo

我正在阅读C#中的字符串比较,我想知道:

我是否可以预定义进程/线程级别的比较信息不区分大小写,以便在比较两个字符串时直接使用==

2 个答案:

答案 0 :(得分:8)

不,你不能。

==运算符调用string.Equals,它自己调用string.EqualsHelper

如您所见,它没有使用任何文化或比较设置(如Equals(String value, StringComparison comparisonType)重载确实)。它只是按字符比较字符串。

您必须调用Equals的重载才能获得所需的结果,这不是默认行为,并且无法更改,除非您可以使用自己的stringstring.Equals运算符实现覆盖每个 ==

答案 1 :(得分:0)

不完全是:

您可以使用PostSharp创建属性并将其应用于程序集中的所有方法。

我很长时间没有使用PostSharp,所以我不能给你一个例子,但是可以做到。

我不喜欢这个想法,这可能会在将来导致很多麻烦。但这有可能并且接近你所问的。