Я пытаюсь внедрить интерфейс свойств с классом, наследующим объявить его. Может быть, пример легче понять.C# Осуществить интерфейс и наследование
MyClassA в порядке, но MyClassB имеет ошибку компиляции: «Test.MyClassB» не реализует член интерфейса «Test.IMyInterface.PropA». Любая идея, как я могу это сделать?
/****** ****** EDITED КОД/
public class BaseClass
{
public int PropA { get; set; }
}
public class InheritClass : BaseClass
{
public int PropB { get; set; }
}
public interface IMyInterface
{
BaseClass PropClass { get; set; }
}
public class MyClassA : IMyInterface
{
public BaseClass PropClass { get; set; }
}
public class MyClassB : IMyInterface
{
public InheritClass PropClass { get; set; }
}
'MyClassB' * не реализует' PropA'. Что ты пытаешься сделать? Вы не наследуете 'MyClassB' ни от чего. – Luaan
FYI - вы можете щелкнуть правой кнопкой мыши по интерфейсу, который наследует класс, и «Реализовать» любые методы/свойства, описываемые интерфейсом. (В визуальной студии другие IDE могут отличаться) – WraithNath
Хорошо, правильно, это намного яснее. Вы * должны * использовать ту же самую подпись. Несмотря на то, что 'InheritClass' наследует от' BaseClass', сигнатура метода все еще должна использовать 'BaseClass'. Фактическим значением может быть «InheritClass», но не подпись. Может быть, вы захотите использовать общий интерфейс? Или вспомогательное свойство? – Luaan