Ich werde mal sehen, was sich machen lässt, versprechen kann ich aber nichts. Abgesehen davon, dass der Vortrag auf Englisch sein wird, solltet ihr aber nicht zu viel erwarten. Ich bin doch auch nur ein kleiner Spieleprogrammierer...
@Xable:
Delegates stellen im Grunde die Typen für Methoden dar, wenn man diese in Variablen speichern oder per Parameter an Methoden übergeben will. Der häufigste Anwendungsfall sollte die Verwendung als Callback sein. In meinem derzeitigen Projekt verwende ich Callbacks für die Dialoge.
Lambdas finde ich in diesem Zusammenhang interessant, da sie aufgrund des Closures, in dem sie sich befinden, Zugriff auf die lokalen Variablen der umgebenden Methode haben. Statt sich also eine Klasse zu erzeugen, der alle notwendigen Referenzen mitgegeben werden, die eine Methode besitzt, die als Callback übergeben wird, reicht meist eine kurze Codezeile für den Lambda-Ausdruck.
Events stellen im Grunde eine Sammlung von Callbacks des gleichen Typs dar. Ruft man ein Event auf, werden alle per
+= zugewiesenen Callbacks aufgerufen. Beachten muss man, dass Events in C#
null sind, wenn ihnen noch nichts zugewiesen wurde, darauf muss man vor jedem Aufruf prüfen. Auch sollte man, wenn man ganz sauber vorgehen will, Callbacks auch wieder mit
-= entfernen, wenn man diese nicht mehr benötigt.
Im Vortrag würde ich dazu dann noch ein wenig Code schreiben, aber ansonsten wäre das der Umfang, in dem ich auf die Punkte eingehen werde.