Erstellen Sie ein Ereignis, um nach einer Änderung der Variablen zu sehen

8

Sagen wir einfach, ich habe:

%Vor%

Wie kann ich einen Event-Handler erstellen, der ausgelöst wird, wenn sich der booleanValue geändert hat? Ist es möglich?

    
Arrow 07.01.2013, 04:43
quelle

6 Antworten

12

Vermeiden Sie allgemein öffentliche Felder als Regel. Versuche, sie so privat wie möglich zu halten. Dann können Sie eine Wrapper-Eigenschaft verwenden, die Ihr Ereignis auslöst. Siehe das Beispiel:

%Vor%

Das ist ein einfacher, "nativer" Weg, um das zu erreichen, was Sie brauchen. Es gibt andere Möglichkeiten, sogar von .NET Framework angeboten, aber der obige Ansatz ist nur ein Beispiel.

    
Mir 07.01.2013, 04:47
quelle
7

INotifyPropertyChanged ist bereits definiert, um benachrichtigt zu werden, wenn die Eigenschaft geändert wird.

Umschließen Sie Ihre Variable in der Eigenschaft und verwenden Sie INotifyPropertyChanged Schnittstelle.

    
Tilak 07.01.2013 04:49
quelle
3
  1. Ändern Sie den Zugriff des BooleanValue auf "privat" und erlauben Sie nur, dass Sie ihn aus Konsistenzgründen durch eine Methode ändern.

  2. Feuern Sie Ihr benutzerdefiniertes Ereignis in dieser Methode

  3. ab

.

%Vor%

Option 2: Machen Sie eine Eigenschaft und feuern Sie das Ereignis im Setter

%Vor%

Edit: Wie andere gesagt haben, ist INotifyPropertyChanged der .NET Standard Weg dies zu tun.

    
lahsrah 07.01.2013 04:46
quelle
2

Vielleicht werfen Sie einen Blick auf die Schnittstelle INotifyPropertyChanged . Sie werden sicherlich in Zukunft wieder darauf treffen:

MSDN: Ссылка

    
Simon Whitehead 07.01.2013 04:48
quelle
2
%Vor%

In Ihrer Klasse mit der Bool-Eigenschaftsprozedur:

%Vor%     
Jeremy Thompson 07.01.2013 04:49
quelle
2

Nein, es ist nicht möglich, * über Änderungen im Wert einer Variablen benachrichtigt zu werden.

Sie können fast erreichen, was Sie wollen, indem Sie den Wert als eine Eigenschaft einiger Klassen festlegen und Ereignisse nach Wunsch auslösen.

*) Wenn Ihr Code ein Debugger für einen Prozess ist, können Sie die CPU veranlassen, Sie über Änderungen zu informieren - siehe Data Chage Breakpoints in Visual Studio. Dies erfordert zumindest eine gewisse Menge an nativem Code und ist schwerer zu implementieren, da die Objekte im Speicher durch GC verschoben werden.

    
Alexei Levenkov 07.01.2013 04:50
quelle