Ho uno strano problema che non ho potuto risolvere. Quando provo a compilare il seguente stato tagliato ottengo questo errore:C# Proprietà in classi base astratte
'AbstractClass' non implementa il membro di interfaccia 'Proprietà' (Errore del compilatore CS0535)
La guida in linea mi dice di fare il mio AbstractClass astratta, che si è. Qualcuno può dirmi dove ho sbagliato?
Acclamazioni Rüdiger
public interface IBase {
string Property { get; }
}
public abstract class AbstractClass : IBase
{
public override string ToString()
{
return "I am abstract";
}
}
public class ConcreteClass : AbstractClass
{
string Property {
get {
return "I am Concrete";
}
}
}
Grazie, questo ovviamente lo risolve. Mi sto ancora chiedendo perché, sembra essere una rottura con il solito modo in cui le interfacce vengono gestite in classi astratte. –
Come intendi?Una sottoclasse della classe astratta non deve necessariamente sapere che implementa IBase, dovrebbe solo vedere membri virtuali e astratti che può/deve implementare. – dahlbyk
Dovrai inoltre dichiarare 'Property' su' ConcreteClass' con il modificatore 'override'. – LukeH