Laden...

CS0143 - Erben von einer Basisklasse ohne Konstruktor

Erstellt von Der Zaehe vor 16 Jahren Letzter Beitrag vor 13 Jahren 2.770 Views
D
Der Zaehe Themenstarter:in
35 Beiträge seit 2006
vor 16 Jahren
CS0143 - Erben von einer Basisklasse ohne Konstruktor

Hallo,
der Titel verrät schon, was ich nicht hinbekomme. Ich will eine Klasse von Assembly ableiten, in der ich Assembly um eine Methode erweitere. Beim kompilieren erhalte ich oben genannten Fehler, CS0143. Wie kann ich dieses Problem lösen?

2.921 Beiträge seit 2005
vor 16 Jahren

.net 1.1/2.0: Wrapper erstellen (eigene Klasse erstellen, und darin jede Methode kapseln)

.net 3.x: Extension Methods benutzen

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

0
767 Beiträge seit 2005
vor 16 Jahren

Original von dr4g0n76
.net 3.x: Extension Methods benutzen

erst ab .net 3.5
du meintest wahrscheinlich c# 3.0 (dankt MS für durchgehende versionierung).

loop:
btst #6,$bfe001
bne.s loop
rts

D
Der Zaehe Themenstarter:in
35 Beiträge seit 2006
vor 16 Jahren

Dann mal danke für die Infos! 😉 Auf die Möglichkeit der Extension Methods kann ich leider noch nicht zurückgreifen, also werde ich das wohl über eine Wrapperklasse oder eine ähnliche Lösung angehen.

61 Beiträge seit 2009
vor 13 Jahren

Hallo zusammen,

vor dem Problem stehe ich auch.
Aber alle zu kapseln ist defninitiv nicht die Lösung.

Als Beispiel:
Die Klasse System.Drawing.Bitmap erbt von System.Drawing.Image.
System.Drawing.Image ist eine abstrakte Klasse ohne Konstruktoren.
System.Drawing.Bitmap hat jedoch Konstruktoren.
Wenn ich aber versuche ebenfalls eine Klasse zu schreiben, welche von System.Drawing.Image erbt, dann erhalte ich den Fehler CS0143.

Soll ich etwa glauben, dass es grundsätzlich nicht möglich ist und Microsoft hier bloß die Regeln gebrochen hat? Oder habe ich dabei etwas übersehen?

In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.

4.939 Beiträge seit 2008
vor 13 Jahren

Hallo Ruben,

die Image-Konstruktoren sind laut Reflector als internal deklariert:


internal Image();
internal Image(IntPtr nativeImage);
internal Image(SerializationInfo info, StreamingContext context);

Es scheint also von MS nicht vorgesehen zu sein, selber neue von Image abgeleitete Klassen zu erstellen.

61 Beiträge seit 2009
vor 13 Jahren

Danke, das über die Reflection zu prüfen, hab ich gar nicht gedacht.
Aber jetzt bin ich dahingehend auch wieder schlauer 😉

In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.