Ich sehe zwei Arten der Umsetzung von INotifyPropertyChanged
Was ist [NotifyPropertyChangedInvocator] in C# beim Implementieren von INotifyPropertyChanged?
Die ersten:
public abstract class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } }
Die zweiten:
public abstract class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; [NotifyPropertyChangedInvocator] protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } }
In zweit man Sie dort zu sehen ist ein zusätzliches Attribut [NotifyPropertyChangedInvocator]
über die Methode OnPropertyChanged
In meinem Fall verhalten sich beide gleich, aber was, warum und wann dieses [NotifyPropertyChangedInvocator]
zu verwenden, was sind Vorteile davon? Ich habe im Internet gesucht, konnte aber keine gute Antwort finden.
Ist ein C# -Feature. Resharper ist nur ein Tool und kann keinen zusätzlichen Code hinzufügen, der C# nicht unterstützt. Es gibt auch etwas hinter NotifyPropertyChangedInvocator. –
Dann sagen Sie [CallerMemberName] wird auch von Resharper hinzugefügt, durch das Entfernen des Codes funktioniert auch, aber CallMemberName lösen Kopfschmerzen von geben Namen oder Eigenschaften, wo wir es nennen. Gleiche möchte ich über NotifyPropertyChangedInvocator wissen es Check http://www.kunal-chowdhury.com/2012/07/whats-new-in-c-50-learn-about.html –
@WaqasIdrees CallMemberName ist ein Feature von C# mit .net 4.5. Ermöglicht es Ihnen, die Methode oder den Eigenschaftsname des Aufrufers für die Methode abzurufen. Können Sie beweisen, dass NotifyPropertyChangedInvocator mit C# geliefert wird?seit Sie haben – Sajeetharan