Новый C# 6.0 nameof
отлично подходит для шаблона 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;
}
}
Будет ли этот код компилироваться/работать с новым именем выражений?
private void OnMyObjectPropertyChanged(object sender, PropertyChangedEventArgs args)
{
switch (args.PropertyName)
{
case nameof(MyObject.MyProperty):
DoSomething();
break;
}
}
nameof(MyObject.MyProperty)
сработает.MyProperty
не статично. Вам понадобится экземплярMyObject
. - person Frédéric Hamidi   schedule 07.05.2015