Ich habe beobachtet, dass der Compiler auf eine Delegat-Deklaration wie folgt stieß:
public delegate string StringOperation(string myString);
Dann erzeugt der Compiler den folgenden Code:
%Vor% Meine Frage ist, warum würde virtual
Methoden generieren, wenn die Klasse selbst eine sealed
Klasse ist?
Es hat keinen Sinn, virtual
-Methoden zu erstellen, da wir nicht override
haben können, richtig?
Ich bin mit diesem Teil des Frameworks nicht vertraut, aber Reflector gibt dies als die Definition von BeginInvoke
:
Mein Auge wurde auf das Attribut MethodImpl
gelenkt. MethodCodeType.Runtime
bedeutet:
Gibt an, dass die Methodenimplementierung von der Laufzeitumgebung bereitgestellt wird.
Also ich denke, es ist virtual
, weil die Laufzeit ihre Funktionalität überschreiben wird. Und die Laufzeit könnte leicht die Klasse sealed
übergeben.