Могу ли я объявить тип пересечения в 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;
}
Я хочу иметь переменную, которую я могу назначить оба экземпляра Impl1 и Impl2 to, и что я могу вызвать 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#»