哪个字符串比较器与 switch 语句一起使用?



执行switch语句时如何比较字符串?线程/计算机的当前区域性是否会影响switch评估?我养成了在比较字符串时总是指定比较器的习惯,所以确认这一点会很棒。

我怀疑这是StringComparer.Ordinal,但我找不到任何关于此的文档。

线程/计算机的当前区域性是否影响交换机 评估?

不,它没有。

switch,在被子下面使用Equals。因此它是序数:

此方法执行序号(区分大小写和 不区分文化(比较。

我们怎么知道switch使用Equals?好吧,文档指出:

常量表达式的计算方法如下:

  • 如果 expr 和常量是整型类型,则 C# 相等运算符 确定表达式是否返回 true(即是否 expr == 常量(。

  • 否则,表达式的值由对 static Object.Equals(expr, constant( 方法。

后一个要点在这里适用。

相关内容

最新更新