Один из подходов, который может быть полезен, - это определить интерфейс ISelf , единственный член которого, Self, просто возвращает «this» как T; затем для любого интерфейса IWh независимо от того, что может быть объединено, определите общую версию IWhwhat , которая наследует как IWhothing и ISelf . В этом случае класс Whizbang, который реализует IFoo и IBar , будет неявно реализовывать ISelf , IFoo >, IBar > и т. Д. Процедура, которая требует чего-то, что реализует как IFoo, так и IBar может принимать параметр типа IFoo ; этот параметр будет реализовывать IFoo; Свою собственную собственность реализует IBar. Любой объект, который реализует несколько интерфейсов с использованием этого шаблона, может быть приведен к вложенному типу интерфейса данной формы с использованием некоторых или всех интерфейсов, перечисленных в любом порядке.