Hintergrund: C #: Das neue und verbesserte C # 6.0
%Vor% Da der Operator +=
nur syntaktischer Zucker ist, um die Methode add des Ereignisses aufzurufen, hätte ich erwartet, dass die letzte Zeile genauso kompiliert wird wie der Aufruf von DoSomething()
(und dass sie zur Laufzeit nichts tut) ).
Der Operator +=
ist zwar syntaktischer Zucker für einen Methodenaufruf, aber er ist ein Operator, kein Methodenaufruf.
Der Code auf der linken Seite des +=
-Operators lautet:
Der Code auf der linken Seite dieses Operators muss zu etwas ausgewertet werden, dem ein +
-Operator zugewiesen werden kann (z. B. eine Variable des Delegattyps) oder ein Ereignis
Dieser Code kann nicht zu einem Ereignis ausgewertet werden, wenn outer == null
, weshalb es illegal ist.
Tags und Links c#