Feedback

C# - Event

Veröffentlicht von am 11.02.2008
(1 Bewertungen)
Deklaration eines Events.
Es sind nur += und -= offentlich zugänglich.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

#region EventName: MyEvent
/// <summary>
/// <see cref="MyEvent"/>
/// </summary>
private event EventHandler<MyEventArgs> _MyEvent;
/// <summary>
/// ...
/// </summary>
public event EventHandler<MyEventArgs> MyEvent
{
 add { _MyEvent += value; }
 remove { _MyEvent -= value; }
}
/// <summary>
/// ...
/// </summary>
/// <param name="e">The event args
/// instance containing the event data.</param>
protected virtual void OnMyEvent(MyEventArgs e)
{
 try
 {
  if(_MyEvent != null)
  {
   _MyEvent(this, e);
  }
 }
 catch
 {
  //TODO: exception handling
  throw;
 }
}
#endregion
Abgelegt unter event, add, remove, EventHandler.

1 Kommentare zum Snippet

Ralf Patzig schrieb am 14.02.2008:
Gut ist der generische Ansatz für den EventHandler. Gut auch, daß das Auslösen des Event dem Entw.muster des .NET-Framework folgt. Folgendes als Anmerkung:
1. Es ist nicht nötig, ein event per add/remove-Kapselung zu veröffentlichen. Es sind von aussen de facto nur add und remove möglich, also reicht ein "public event EventHandler<T> TheEvent".
2. Die Methode zum Auslösen des Event kann noch bzgl. Multithreading verfeinert werden. Wird zw. dem Prüfen des event auf null und dem Auslösen des event selbiges durch Entziehen von Handlern auf null gezogen, dann gibt's eine Exception. Besser umgeht man das durch vorheriges Kopieren des Event:
EventHandler<T> handler = TheEvent;
if (handler != null)
{
handler(this, e);
}
 

Logge dich ein, um hier zu kommentieren!