管理人の技術ブログです。簡単に言うと、変数名や関数名などをサクッと取得するためのキーワードです。使ってみるnameof演算子の利用方法は以下のような感じです。このように、非常にカジュアルに利用することができます。WriteLine*/この機能により、これまで文字列ベタ書きに甘んじていた多くのコードが安全に記述できるようになります!PropertyInfoなどのリフレクションを駆使したコードや、Expressionを使ったコードがいくらか減る予感。超ハッピー!以下にいくつかの例を載せてみました。デバッグメッセージの生成など、有効に使えるシチュエーション結構多いのではないかと思います。引数チェック時の例外文字列コンストラクタやメソッドでの引数チェックは頻繁に行われます。このとき、検証エラーが発生した場合にはエラーが出た引数名を文字列として例外クラスに渡すのが基本でした。引数名を変更する際に処理を忘れるというのはたまにやってしまうミスですが、これからはそんな問題も起こらなくなるでしょう。Phone、WindowsストアアプリなどのXAMLアプリケーションを開発する際の重要な機構のひとつにデータバインディングがあります。INotifyPropertyChangedはその機構を支える重要なインターフェースですが、その実装は「変更されたプロパティの名前をイベント引数としつつ、イベントを発行する」なので、プロパティ名を文字列でベタ書きするか、ExpressionやCallerMemberName属性などを利用して取得していました。今回nameof演算子のおかげで少しだけ直観的になった気がします。依存関係プロパティその他、同じくXAMLアプリケーションで重要な依存関係プロパティにもプロパティ名を文字列で指定する箇所があります。いったところでも変更に対する耐久性を高めることができるようになります。}}逆コンパイルnameof演算子がどのように展開されるのか逆コンパイルして確認してみます。Console.WriteLine(name);}普通の文字列リテラルにそのまま置き換わっています。実行時解釈ではなくコンパイル時解釈のようです。(1)月別アーカイブはてなブログをはじめよう!xin9leさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。