Ho la seguente classe di base:non può eseguire l'override di proprietà protetto impostata
abstract class Base
{
public abstract object Var
{
get;
protected set;
}
}
E questa classe derivata:
class Derived : Base
{
public override object Var
{
get {//code here
}
set {//code here -- I get error here!
}
}
}
Ma sto ottenendo questo errore:
Cannot change access modifier when overriding 'protected' inherited member 'Var'
I provato ad aggiungere un protected
e alle private
parole chiave prima del set ma non è stato d'aiuto. Come posso risolvere questo?
UPDATE:
La base di classe deve fare in modo che le sottoclassi di fornire un valore per Var
al momento della creazione. Quindi ho bisogno di dichiarare il setter nella classe Base.
In alternativa, potrei dichiarare una variabile membro privata per fare ciò e rimuovere il setter, ma questa non è un'opzione come discusso here.
Oh mio dio! Stupido VS! Come ho detto nel mio post ho provato questo e non è stato d'aiuto. Ho ripensato a quando l'hai menzionato, non funzionava ancora, ho guardato di nuovo la tua risposta, ricompilata e non c'è più! Quindi cosa faccio adesso? dovrei accettare la tua risposta o dovrei rimuovere il mio post? – atoMerz
@AtoMerZ - Accetterei la risposta migliore e andare avanti. Poiché la domanda ha generato un aumento delle risposte, avrai bisogno di una mod per rimuoverla. Non vale la pena per nessuno. –