Nicht außer Kraft setzen kann Eigentum auch geschützt wird eingestellt
Habe ich die folgenden Basis-Klasse:
abstract class Base
{
public abstract object Var
{
get;
protected set;
}
}
Und diese abgeleitete Klasse:
class Derived : Base
{
public override object Var
{
get {//code here
}
set {//code here -- I get error here!
}
}
}
Aber ich bin immer diese Fehlermeldung:
Nicht ändern access-modifier beim überschreiben der "geschützten" vererbten member 'Var'
Ich habe versucht, das hinzufügen einer protected
und private
keywords vor, aber es half nicht. Wie kann ich dieses Problem beheben?
UPDATE:
Die Basisklasse muss stellen Sie sicher, dass Unterklassen geben Sie einen Wert für Var
zum Zeitpunkt der Erstellung. So brauche ich, um das Set-Deklaration in Basisklasse.
Alternativ könnte ich deklariere eine private member-variable, um dies zu tun, und entfernen Sie die setter, aber das ist nicht eine option, wie besprochen,hier.
InformationsquelleAutor atoMerz | 2011-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass die
set
in der abgeleiteten Klassepublic
Sichtbarkeit—da Sie nicht angegebenprotected
ausdrücklich. Da diese Eigenschaft gesetzt hat, geschützt Sichtbarkeit in Ihre base-class, Sie bekommen den FehlerKönnen Sie es beheben, indem Sie die set-protected-Sichtbarkeit in der abgeleiteten Klasse:
Ich würde annehmen, die beste Antwort und ziehen weiter. Da die Frage von Ihnen positiv bewertet werden Antworten, brauchst du eine mod um es zu entfernen. Nicht der Mühe Wert, für jeden.
InformationsquelleAutor Adam Rackis