У меня есть класс, который наследуется от интерфейса. Этот интерфейс определяет событие, на которое я хотел бы подписаться в вызывающем коде. Я пробовал пару вещей, но все они принимают ложное (где я знаю, что это правда). Как я могу проверить, реализует ли класс определенный интерфейс.
Вот что я попробовал (обратите внимание, что рассматриваемый объект - это пользовательский контроль, который реализует MyInterface, хранящийся в массиве элементов управления, только некоторые из которых реализуют MyInterface - он не равен нулю):
if (this.controls[index].GetType().IsSubclassOf(typeof(MyInterface)))
((MyInterface)this.controls[index]).Event += this.Handler;
if (this.controls[index].GetType().IsAssignableFrom(typeof(MyInterface)))
((MyInterface)this.controls[index]).Event += this.Handler;
if (this.controls[index].GetType() == typeof(MyInterface))
((MyInterface)this.controls[index]).Event += this.Handler;
Все безрезультатно.