Einer Klasse ohne Konstruktor wird vom Compiler (MSIL) immer ein Defaultkonstruktor hinzugefügt.
public class ClassTestConstructor
{
}
Wenn man von dieser Klasse den MSIL (Intermediate Language Code) anschaut hat diese Klasse einen Default Konstruktor ohne Parameter. ClassTestConstructor()
Wird dieser Klasse ein Konstruktor hinzugefügt:
public class ClassTestConstructor
{
public ClassTestConstructor(int value)
{
//
// my Constructor
//
}
}
erhält diese Klasse beim Compilieren nach MSIL keinen DefaultKonstruktor mehr.
KEIN ClassTestConstructor()
Daraus folgt: IMMER einen Default Konstruktor schreiben. Evtl. leer lassen.
Wenn dieser nicht sichtbar sein soll -> private machen!
MSIL anschauen mit: ildasm oder .net Reflector von Lutz Roeder
No comments:
Post a Comment