Сценарий
Рассмотрим следующий фрагмент кода.
string s = "S";
string s1 = "S";
string s2 = string.Empty;
switch (s)
{
case "S":
s1 = "StringComparison";
break;
default:
break;
}
switch (s[0])
{
case'S':
s2 = "StringCOmpare2";
break;
default:
break;
}
первый случай переключения, приводит к сравнению строк в IL.
Но второй случай переключения не приводит к сравнению строк в IL.
Кто-нибудь может это оправдать?