Wenn ich von einer Basisklasse erbe und etwas vom Konstruktor der geerbten Klasse an den Konstruktor der Basisklasse übergeben möchte, wie mache ich das?
Wenn ich z. B. von der Klasse Exception erbe, möchte ich so etwas wie das Folgende tun:
class MyExceptionClass : Exception
{
public MyExceptionClass(string message, string extraInfo)
{
//This is where it's all falling apart
base(message);
}
}
Im Grunde, was ich will, ist in der Lage, die Zeichenfolge Nachricht an die Basisklasse Exception übergeben.
37 Stimmen
Es ist auch erwähnenswert, dass Sie Konstruktoren in Ihrer aktuellen Klasse verketten können, indem Sie
this
parabase
.0 Stimmen
Sie ist hier docs.microsoft.com/de-us/dotnet/csharp/language-reference/
5 Stimmen
Anstatt zu sagen, "es fällt alles auseinander", ist es viel hilfreicher, einfach die Fehlermeldung zu posten, die Sie erhalten
0 Stimmen
Try: public class MyExceptionClass : Exception { public MyExceptionClass(string message, string extrainfo) : base(message) { //andere Dinge hier } }
0 Stimmen
@Quibblesome Ich habe kein Beispiel gefunden, in dem .this durch .base ersetzt wurde. Wahrscheinlich habe ich mich nicht richtig ausgedrückt, aber haben Sie irgendwelche Beispiele? Meine Frage ist, wenn Sie die Ersetzung vornehmen, brauchen Sie dann nicht mehr :base in den Argumenten und können einfach .base im Konstruktor verwenden?