Могу ли я объявить тип пересечения в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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