Как узнать базовый тип унаследованного универсального типа? - PullRequest
2 голосов
/ 26 марта 2010

Рассмотрим этот код:

class MyClass<T>
{
}

class AnotherClass : MyClass<String>
{
}

Когда я смотрю на свойство BaseType типа AnotherType, он говорит, что это Object, где я ожидал увидеть универсальный тип MyClass.

Есть ли способ узнать, что AnotherClass наследует MyClass?

EDIT : Проблема заключалась в том, что тип MyClass был на самом деле интерфейсом, поэтому совершенно нормально, что он не отображается как BaseType.

Ответы [ 2 ]

8 голосов
/ 26 марта 2010

Невозможно воспроизвести:

using System;

class MyClass<T> {}
class AnotherClass : MyClass<string> {}

public class Test
{
    static void Main()
    {
        // Prints MyClass`1[String]
        Console.WriteLine(typeof(AnotherClass).BaseType);
    }
}

Пожалуйста, отправьте код, который не работает.

1 голос
/ 26 марта 2010

Есть ли вероятность, что MyClass на самом деле является интерфейсом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...