C#7は、あなたがされ、式で使用したり、このようなケースを切り替えることができますパターンを、と呼ばれる新機能が導入されました:C#7スイッチケース
string str = null;
switch(str){
case string x:
Console.WriteLine("string " + x);
break;
default:
Console.WriteLine("default");
break;
}
、あなたはそれをすることを期待します同じタイプなので、ケース#1の中に入っていますが、同じタイプではありません。
"それは同じタイプである" - 実際はそうではありません。 'object o = str;を実行すると、 bool isString = oは文字列です; '次に' isString'はfalseになります... –
はい、正しく、null文字列がSystem.Stringオブジェクトを参照していません – MAbdulHalim
@JonSkeet、レビューする。 – MAbdulHalim