Il nuovo C# 6.0 nameof
è grande nel modello PropertyChanged
per propagare le modifiche alle proprietà utilizzando qualcosa di simile:È possibile utilizzare un nome di espressione nell'istruzione switch?
private string _myProperty;
public string MyProperty
{
get
{
return _myProperty;
}
set
{
_myProperty= value;
OnPropertyChanged(nameof(MyProperty));
}
}
Durante l'ascolto delle modifiche alle proprietà che uso questo (sì, anche con le stringhe hardcoded brutto):
private void OnMyObjectPropertyChanged(object sender, PropertyChangedEventArgs args)
{
switch (args.PropertyName)
{
case "MyProperty":
DoSomething();
break;
}
}
Con il nuovo nome di espressioni questo codice verrà compilato/lavorato?
private void OnMyObjectPropertyChanged(object sender, PropertyChangedEventArgs args)
{
switch (args.PropertyName)
{
case nameof(MyObject.MyProperty):
DoSomething();
break;
}
}
Non penso che 'nameof (MyObject.MyProperty)' funzioni. 'MyProperty' non è statico. Avresti bisogno di un'istanza di 'MyObject'. –
Lo è. Il * nome della proprietà * è sempre statico @ FrédéricHamidi –