エヴァン:
私は時々、次のコードを参照してください、と表現が実際にテストしているものは考えています。
public static void Something(string[] value)
{
if (value is { })
{
DoSomethingElse();
}
}
ダニエルA.ホワイト:
それはない値を意味し、C#8でちょうど空のプロパティパターンですnull
。これは、任意の値型または参照型と一致しました。コメントでパナギオティスKanavosノートのように、これは古き良きと同等ですvalue is object
長い時間のためにC#になっているチェック。
あなたがプロパティを指定した場合、一般的に、それが一致するかではないでしょう。この難解な例があることを示しています。
if (value is { Length: 2 })
{
// matches any object that isn't `null` and has a property set to a length of 2
}
以下のような場合には他のパターンと比較したときの特性パターンが最もよく働くと最もはっきりしているswitch
表現。