ホーム > ストアアプリ, プログラミング > ストアアプリに含まれるBindableBaseのOnPropertyChangeってプロパティー名渡す必要ないんだ。

ストアアプリに含まれるBindableBaseのOnPropertyChangeってプロパティー名渡す必要ないんだ。


遅まきながら、ストアアプリを作ろうかと思ったわけです。

こんなコードを書いたらReSharperが修正したほうがいいよ。と教えてくれた

無題  無題2e

えっ!?通知元名消しちゃっていいの?と思ってOnPropertyChangedの定義を見たら、

        /// <summary>
        /// プロパティ値が変更されたことをリスナーに通知します。
        /// </summary>
        /// <param name="propertyName">リスナーに通知するために使用するプロパティの名前。
        /// この値は省略可能で、
        /// <see cref="CallerMemberNameAttribute"/> をサポートするコンパイラから呼び出す場合に自動的に指定できます。</param>
        protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            var eventHandler = this.PropertyChanged;
            if (eventHandler != null)
            {
                eventHandler(this, new PropertyChangedEventArgs(propertyName));
            }
        }

あー、CallerMemberName属性が付与されているから、コードコメントのように呼び元と同じプロパティー名だったら省略可能なんだね。なるほどねー。久々にC#やるとおろおろする。

カテゴリー:ストアアプリ, プログラミング タグ:
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。