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

C# 哪个字符串比较器与switch语句一起使用?,c#,string,switch-statement,string-comparison,cultureinfo,C#,String,Switch Statement,String Comparison,Cultureinfo,执行switch语句时如何比较字符串?线程/计算机的当前区域性是否影响开关评估?我养成了在比较字符串时总是指定一个比较器的习惯,所以最好能确认这一点 我怀疑它是StringComparer.Ordinal,但我找不到任何关于它的文档 线程/计算机的当前区域性是否影响交换机 评估 不,没有 开关,在盖子下使用。因此,它是有序的: 此方法执行顺序(区分大小写和 (文化不敏感)比较 我们如何知道开关使用等于?良好状态: 常数表达式的计算如下所示: 如果expr和constant是整数类型,则C#相等

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

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

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

不,没有

开关
,在盖子下使用。因此,它是有序的:

此方法执行顺序(区分大小写和 (文化不敏感)比较

我们如何知道
开关
使用
等于
?良好状态:

常数表达式的计算如下所示:

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

  • 否则,表达式的值由对 静态对象。等于(expr,常量)方法


后一个要点适用于此处。

请参阅源代码:因此,它并没有真正使用
StringComparer.Ordinal
,而是在进行相同的比较。实际上是@DavidS。虽然显示
StringComparer.Ordinal
使用
String.Equals
(而不是相反)。