这是我们的发现:
对于字符串以外的任何对象,有效的switch语句将作为switch语句编译到IL。然而,如果它是一个字符串,它在IL中被重写为IF /else IF /else。所以在我们的例子中,我们想知道switch语句如何比较字符串,例如区分大小写等,reflector很快给了我们一个答案。知道这一点很有用。< / p >
如果你想对字符串进行区分大小写的比较,那么你< em > < / em >可以使用switch语句,因为它比执行String更快。用if/else进行比较。(编辑:阅读什么是更快,开关字符串或elseif类型?一些实际的性能测试)然而,如果你想做一个不区分大小写的,那么最好使用if/else,因为结果代码不漂亮。
switch (myString.ToLower())
{
// not a good solution
}