Для классов HTML5 и CSS3 классы и идентификаторы могут начинаться с цифр.
Type[] types = typeof(IFoo).GetInterfaces();
Редактирование: Если Вы конкретно хотите IBar, можно сделать:
Type type = typeof(IFoo).GetInterface("IBar");
Интерфейс не является базовым типом. Интерфейсы не являются частью дерева наследования.
Для получения доступа к списку интерфейсов можно использовать:
typeof(IFoo).GetInterfaces()
или если Вы знаете имя интерфейса:
typeof(IFoo).GetInterface("IBar")
, Если Вы только интересуетесь знанием, если тип неявно совместим с другим типом (то, которое я подозреваю, - то, что Вы ищете), используйте тип. IsAssignableFrom (fromType). Это эквивалентно из ',' ключевое слово, но с типами выполнения.
Пример:
if(foo is IBar) {
// ...
}
эквивалентно:
if(typeof(IBar).IsAssignableFrom(foo.GetType())) {
// ...
}
, Но в Вашем случае, Вы, вероятно, больше интересуетесь:
if(typeof(IBar).IsAssignableFrom(typeof(IFoo))) {
// ...
}
В дополнение к тому, что записали другие плакаты, можно получить первый интерфейс от GetInterface () список (если список не пуст) получить прямого родителя IFoo. Это было бы точным эквивалентом Вашей попытки.BaseType.