interface IAandIB extends IA, IB { }
public void Foo(IAandIB someClass) {
//...
}
Поскольку интерфейсы могут расширять несколько других интерфейсов, вы можете просто создать пустой «фиктивный интерфейс», который расширяет их оба, и использовать его в качестве типа для обозначения всякий раз, когда требуется оба.
Этоработает, но не является универсальным решением, так как требует, чтобы вы изменили каждый отдельный класс, который реализует IA
и IB
, чтобы они могли работать для этого метода, который в лучшем случае раздражает и невозможен в некоторых ситуациях.К сожалению, я не знаю другого способа сделать это без генериков.