Я имею дело с интерфейсом следующим образом:интерфейс Наследование и Перегрузки
public interface ISomething
{
...many auto-props,
void SetValues(ISomething thing)
}
Теперь, я не являюсь владельцем этого интерфейса, но я хотел бы продлить его еще пару свойствами:
public interface ISomethingMoreSpecific : ISomething
{
...existing + my props,
void SetValues(ISomething thing)
}
В классе реализует ISomethingMoreSpecific
Я реализовал перегрузку, которая берет производный интерфейс и обрабатывает как мои реквизиты, так и свойства базового интерфейса.
public void SetValues(ISomethingMoreSpecific specificThing)
{
...set my props and base props
}
Вызывающий код выполняет следующие действия:
myThing.SetValues((ISomethingMoreSpecific)otherThing);
С или без броска, метод не пошлет к моей перегрузке, даже если otherThing
и myThing
конкретные типы, реализующие ISomethingMoreSpecific
. Я предполагаю, что я пропускаю что-то простое, но что это?