Могу ли я объявить тип пересечения в C#C#

Место общения программистов C#
Anonymous
Могу ли я объявить тип пересечения в C#

Сообщение Anonymous »

В C#у меня есть следующие классы и интерфейсы (вне моего контроля) < /p>

Код: Выделить всё

public interface IA {
int doA();
}

public interface IB {
int doB();
}

class Impl1: IA, IB {
int doA() => 1;
int doB() => 2;
}

class Impl2: IA, IB {
int doA() => 3;
int doB() => 4;
}
< /code>
Я хочу иметь переменную, которую я могу назначить оба экземпляра IMPL1 и IMPL2, и что я могу вызвать doA () и dob () на типов.IA it = default;
if (condition) it = new Impl1()
else it = new Impl2();
it.doA() // all good
((IB)it).doB() // I know this is safe because I know that it will always be an IB, but the compiler doesn't help me here
Есть ли более безопасный способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/797 ... in-c-sharp

Вернуться в «C#»