Zitat:
So ist die C# Runtime in der System.dll integriert (besser ausgedrückt: die C#
RTL ist die System.dll).
Genau das ist eben nicht der Fall! C# ist absolut
CLS compliant. Die einzige
RTL, die es benötigt ist die CLR (noch nichtmal zwingend die MsCoreLib.dll
)
Auch wenn es wieder wie eine Rumzickerei klingt: Objektiv betrachtet wirken allen Argumente, die du aufgeführt hast, wie Ausreden für eine .Net-Sprache, die eigentlich keine ist.
Statische Konstruktoren sind nunmal das Mittel in .Net. Wenn Borland auf initialisierung und finalization besteht (Warum auch immer...), dann sollten sie es mit .Net Bordmitteln lösen oder einfach sein lassen.
Virtuelle Konstruktoren rechtfertigen ebenfalls keine 2.
RTL. Wenn man diese Funktionalität will kann man sich ganz einfach eine virtual protected Methode anlegen, die man im Konstruktor aufruft. Dadurch würde es in jeder .Net Sprache funktionieren.
Aber egal... Ich produziere mal wieder nur hypothetisches Gesülze. Es ist nunmal so wie es ist: Mancheiner greift aufgrund dieser "features" zu D.Net und ich werde seine Kompilate nicht anfassen.