3 Stimmen

Wie zu kapseln Ereignis Typ Mitglied in c#?

Ich kann Getter und Setter für ein int-Mitglied erstellen. Wie kann ich dies tun, wenn dieses Mitglied ein Ereignistyp ist?

Update: Ich möchte jedes Mal, wenn dieses Mitglied gesetzt wird, eine andere Methode aufrufen.

8voto

Yet Another Geek Punkte 4141

Sie können implementieren benutzerdefinierte Ereignis-Accessoren .

Beispiel:

public delegate int DoSomething();
private event DoSomething _somethingHappened;
public event DoSomething SomethingHappened
{
  add { _somethingHappened += value; }
  remove { _somethingHappened -= value; }
}

6voto

Chris Taylor Punkte 50950

Ereignisse sind in der Tat bereit für den Verbrauch, sehr einfach ausgedrückt, die Deklaration eines Ereignisses ist eigentlich die Definition eines Getter/Setter für den zugrunde liegenden Delegaten und es ist daher nicht notwendig, explizit Getter/Setter zu definieren.

Wenn Sie eine Art von benutzerdefinierter Handhabung für das Anhängen/Abnehmen von Handlern an das Ereignis vornehmen möchten, können Sie einen Blick auf die folgende MSDN-Dokumentation werfen

http://msdn.microsoft.com/en-us/library/bb882534.aspx

http://msdn.microsoft.com/en-us/library/z4ka55h8.aspx

2voto

Oded Punkte 475566

Ereignisse werden mit einem Delegatentyp deklariert - machen Sie Ihre Eigenschaft einfach zum Delegatentyp.

Von MSDN :

In der .NET Framework-Klassenbibliothek basieren Ereignisse auf dem EventHandler-Delegat und der EventArgs-Basisklasse.

public EventHandler MyEvent {get; set;}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X