Подтвердить что ты не робот

Проверить, реализует ли объект интерфейс

У меня есть параметр объекта, и мне нужно проверить, реализует ли объект указанный интерфейс в vb.net. Как проверить это?

Спасибо.

4b9b3361

Ответ 1

Используйте TypeOf... Это:

If TypeOf objectParameter Is ISpecifiedInterface Then
    'do stuff
End If 

Ответ 2

requiredInterface.IsAssignableFrom(representedType)

оба requiredInterface и представленный тип являются типами

Ответ 3

Я также нашел эту статью статью Скоттом Ханслеманом, чтобы быть особенно полезной с этим. В нем он рекомендует

С#

if (typeof(IWhateverable).IsAssignableFrom(myType)) { ... }

Я закончил работу:

VB.Net

Dim _interfaceList As List(Of Type) = myInstance.GetType().GetInterfaces().ToList()
If _interfaceList.Contains(GetType(IMyInterface)) Then
   'Do the stuff
End If

Ответ 4

Вот простой способ определить, реализует ли данная переменная объекта "o" конкретный интерфейс "ISomething":

If o.GetType().GetInterfaces().Contains(GetType(ISomething)) Then
    ' The interface is implemented
End If

Ответ 5

У меня есть List(Of String), а TypeOf tmp Is IList возвращает False. Список (Of T) реализует несколько интерфейсов (IEnumerable, IList,...) и для проверки только одного требуется следующий фрагмент в VB:

If tmp.GetInterfaces().Contains(GetType(IEnumerable)) Then
  // do stuff...
End If