新C# 6.0 nameof
使用類似傳播特性的變化是在PropertyChanged
模式極大:是否可以在switch語句中使用表達式的名稱?
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'的實例。 –
它是。 *屬性名稱*永遠是靜態的@FrédéricHamidi –