C# Vererbung Problem - Sie enthält keinen Konstruktor, der 0-Argumente
Ich gelesen habe, durch einige andere Beiträge, die sind verwandt, aber ich glaube nicht, ich habe das gleiche problem, dass Sie es tun. Ich glaube, ich mache meine Konstruktor für meine geerbten Klasse richtig war, aber es immer noch nicht funktionieren - und wird nicht einmal merken, dass ich einen Konstruktor gibt, so scheint es.
class BlockedNumber : PhoneNumber
{
public BlockedNumber(string a, string m, string l)
: base(a, m, l) { }
}
Dieser gibt mir immer noch den Fehler im Titel:
"DTS.PhoneNumber enthält keinen Konstruktor, der 0-Argumente.
Ich weiß nicht, warum es nicht die Anerkennung meiner Konstruktor richtig. Der Fehler (blau Unterstrichen in VS12) ist bei der ersten Verwendung von BlockedNumber
direkt nach class
.
Hat jemand eine Idee, warum es nicht so?
- Was ist der code, wo Sie die
BlockedNumber
Objekt? - So sind Sie immer einen compile-Fehler, oder ein "phantom-designer-Fehler"? Manchmal VS verwendet die alten Dateien, die für seine autocomplete, es ist selten, aber passiert, und so versuchen, wieder aufzubauen und zu sehen, ob das problem immer noch da...
- du meinst versuchen zu tun, ein
Clean
dann einRebuild
Sie nicht.. - Ich würde empfehlen, hinzufügen der Konstruktor für die Telefonnummer hier
- Hayden, haben Sie Ihre komplette base class code ? Können Sie es kopieren hier ?
- Möglich, Duplikat der C# Fehler: Parent enthält keinen Konstruktor, der 0-Argumente
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nehmen, was Sie haben und Generieren eine Klasse von VS2010
This code compiles just fine so just like Yuriy stated the issue must be somewhere else.
Den folgenden kompiliert
Dein Problem woanders liegt. Wahrscheinlich sind Sie instanziieren ein
PhoneNumber
woanders mit 0 Argumenten.wenn du nicht direkt angeben
: base(x,y,z)
also die parent-Konstruktor aufrufen, der compiler versucht, einen übergeordneten Konstruktor ohne Parameter call-by-default.wird es erklärt, in dieser post - C# Fehler: Parent enthält keinen Konstruktor, der 0-Argumente
Sehr wahrscheinlich, dass Ihr Kind die Klasse hat noch eine weitere parameterlosen Konstruktor, die Sie nicht offenbaren, aber der Konstruktor nicht aufrufen der Basisklasse Konstruktor in einer expliziten Art und Weise. Weil Sie davon ausgehen, dass es nicht relevant ist. Jedoch, C# fügt eine Basisklasse Konstruktor-Aufruf an jeden einzelnen Konstruktor, da dieser erforderlich ist, in CIL. So, der andere Konstruktor beschwert, dass es nicht in der Lage zu finden, ein Basisklassenkonstruktor aufrufen.