Ich habe eine abstrakte Klasse, die a definiert get, aber nicht set, weil diese abstrakte Klasse nur a benötigt get.
public abstract BaseClass
{
public abstract double MyPop
{get;}
}
In einigen der abgeleiteten Klassen benötige ich jedoch eine setEigenschaft, daher sehe ich mir diese Implementierung an
public class DClass: BaseClass
{
public override double MyPop
{get;set;}
}
Das Problem ist, dass ich einen Kompilierungsfehler habe, der das sagt
* .set: kann nicht überschrieben werden, weil *. hat keinen überschreibbaren Set-Accessor.
Auch wenn ich denke, dass die obige Syntax absolut legitim ist.
Irgendeine Idee dazu? Problemumgehung oder warum ist das so?
Bearbeiten: Der einzige Ansatz, den ich mir vorstellen kann, besteht darin, beide getund setwie in der abstrakten Klasse zu setzen und die Unterklasse ein NotImplementedExceptionif auslösen zu lassen, das setaufgerufen wird und nicht notwendig ist. Das mag ich nicht, zusammen mit einer speziellen Setter-Methode .
doubleWerts verfügbar machen, der speziell in jeder Klasse implementiert wird. Manchmal muss dieser Wert festgelegt werden, daher sollten einige dieser Klassen eine Möglichkeit zum Festlegen dieses Werts bereitstellen. Ist das richtig? Wie viele Vererbungsstufen müssen Sie verwenden?