2017-04-24 8 views
2

7.0 C#前に、次のコードが有効であった_ Xである:差がXであり、

if(x is X) 
{ 
    //... 
} 

は今、以下のも有効である:

if(x is X _) 
{ 
    //... 
} 

Accoding TryRoslynに、これらのコードセクション同じILを生成します。私の質問は、パターンマッチングにおける破棄演算子の目的は何か?有用である必要もない場合です。私はここに何かを逃していますか

この質問は、特にパターンマッチング(is演算子)の廃棄演算子(ワイルドカード)の目的を尋ねているので、thatと同じではありません。

+0

この質問は 'is'のためだけですか、' _'ワイルドカードがどこに役立つのかを知りたいだけですか? – EpicKip

+0

@epickip for特に 'is' – Logerfo

+3

有用ではないコードを書く方法は無数にあります。あなたには役に立たないコードを書くことを*禁止することはC#の仕事ではありません。それが試しても*できなかった*。 C#の仕事はあなたが*有用なコードを書けるようにすることです。 – Servy

答えて

2

Neal Gafterによれば、廃棄演算子はこの場合であり、少なくとも今はかなり役に立たない。

1

これはまだ役に立ちません。しかし、再帰的なパターンマッチングが導入されたら(うまくいけばC#8.0で)、パターンの一部に破棄があると便利です。

詳細は確定されませんが、is (1, (_, 3))またはおそらくis X (1, Y (_, 3))のようなものが考えられます。

関連する問題