8

C#7 では、次のような Is-Expression または Switch ケースで使用できる、patternsと呼ばれる新しい機能が導入されています。

string str = null; 
switch(str){
    case string x:
        Console.WriteLine("string " + x);
        break;
    default:
        Console.WriteLine("default");
        break;
}

同じタイプなので、ケース#1の中に入ると予想されますが、そうではありませんでした。

4

2 に答える 2

0

実際には、文字列の null が原因ではありません。

アイデアは、c#7 のパターンを使用してケースを切り替えると、ケースの評価中に Null チェックの別のケースが追加され、Null ケース チェックを追加しなかった場合はデフォルトのケースになるため、null を追加することをお勧めします。この新機能を使用している間は大文字と小文字を区別するか、デフォルトの動作がわかっている場合はデフォルトのままにしておきます。

それが役に立てば幸い!

于 2017-03-22T11:51:08.840 に答える