Warum funktioniert die Null-Propagierung nicht für Ereignisse?

8

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) ).

    
Andreas Huber 23.10.2015, 14:24
quelle

1 Antwort

5

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:

%Vor%

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.

    
Kris Vandermotten 23.10.2015 14:39
quelle

Tags und Links