7で、is演算子やswitchステートメントのcaseが拡張されて、以下のような機能が入りました。switch)と呼びます。matching)」という機能のうち、一番初歩的な部分だけを先に実装したものです。7の時点では、型を見ての分岐(型スイッチ)だけが実装されていますが、将来的にはもっと複雑な条件を書けるようになります。7では、is演算子で以下のような書き方ができるようになりました(型の後ろに新しい変数を書けるようになりました)。6以前のis演算子は少し使い勝手が悪い面がありました。型変換も絡むといまいちです。以下のように型を判定するだけならis演算子の出番です。Console.WriteLine("string");ところが、型を判定したうえでダウンキャストしたいという場面では、以下のように、「2度手間」になって、コード量的にも実行効率的にもよくないです。isとキャストで2つの別命令を使う。s.Length);}結局、以下のように、as演算子を使うことが推奨されます。7では、is演算子で以下のような書き方ができるようになりました。s.Length);}挙動的には、先ほどのas演算子を使ったものとまったく同じ挙動になります。is演算子で型を判定しつつ(boolの戻り値を返しつつ)、その型への変換結果を新しい変数で受け取れます。is演算子で宣言された変数のスコープis演算子の拡張によって、式の中で変数宣言ができるようになりました。そこで問題になるのはこの変数のスコープです。概ね、「その式を含むブロック内」と考えていいんですが、ifやwhileなどの中で使ったときなど、いくつか特殊な場合があります。詳細については「式の中で変数宣言」を参照してください。is演算子によるnullチェック元々のis演算子の仕様でもあるんですが、nullには型がなくて常にisに失敗します(falseを返す)。7からの新しい構文でも引き継いでいて、nullじゃないときだけだけ何かの処理をしたいときに使えます。言っても、参照型の場合にはあまり使い道はありませんが、以下のような書き方ができます。}}この書き方が役に立つのは、値型とnull許容型を使う場合でしょう。6以前だと、以下のような書き方になります。7で以下のように書けるようになります。変数の意味を変えないプログラミング言語によっては、以下のように、is演算子で型を判定した後には、自動的にその型扱いしてくれる言語もあります。いう、「objectだと思っていたものが一定範囲でだけ別の型になる」というようなことはやらない方針です。以下のように、同名の別変数を導入できる言語もありますが、こちらもC#では認めていません。meaning)であるべきという方針を持っています。上記の2つの例では、objやxが部分的に(ifの中でだけ)別の意味になるので、C#としては認めたくないものになります。まで気兼ねなくご連絡ください。ついて運営者について。