Ich möchte eine Liste erstellen, die einige Ereignisse speichert und Ereignishandler über die Liste an das Ereignis anfügt.Anfügen eines Ereignishandlers an ein in einer Liste gespeichertes Ereignis
Also mache ich ein List<dele>
das Ereignis anEvent
hinein hinzufügen, dann versuche ich, einen Event-Handler für dieses Ereignis zu befestigen, aber schließlich anEvent
bekam noch keinen Event-Handler es angebracht ist, gibt das Programm True fest. Aber der Delegierte, der bei list[0]
gespeichert wurde, erhielt den Lambda-Ausdruck.
public delegate void dele();
class Program
{
static event dele anEvent;
static void Main(string[] args)
{
List<dele> list=new List<dele>();
list.Add(anEvent);
list[0]+=()=>{Console.WriteLine("BEEP!");};
Console.WriteLine(anEvent==null);
}
}
Ist kein Referenztyp delegiert? Es scheint, dass sich eventhandler
und list[0]
auf verschiedene Objekte bezieht. Ich wundere mich warum.
Wenn ich möchte, dass anEvent
ruft den Event-Handler, wenn ich den Handler an list[0]
anfügen, was soll ich tun?
Danke!
umgewandelt ??? – TaW
Die Ausgabe ist falsch, ich habe es getestet –
Delegaten sind Werttypen. – Enigmativity