新しいC# 6.0nameof
は、次のPropertyChanged
ようなものを使用してプロパティの変更を伝達するパターンに優れています。
private string _myProperty;
public string MyProperty
{
get
{
return _myProperty;
}
set
{
_myProperty= value;
OnPropertyChanged(nameof(MyProperty));
}
}
プロパティの変更をリッスンするときは、これを使用します(はい、ハードコードされた文字列が醜い場合でも):
private void OnMyObjectPropertyChanged(object sender, PropertyChangedEventArgs args)
{
switch (args.PropertyName)
{
case "MyProperty":
DoSomething();
break;
}
}
新しい nameof 式を使用すると、このコードはコンパイル/動作しますか?
private void OnMyObjectPropertyChanged(object sender, PropertyChangedEventArgs args)
{
switch (args.PropertyName)
{
case nameof(MyObject.MyProperty):
DoSomething();
break;
}
}