Thibault Falise
Thibault Falise

Reputation: 5885

How to know the base type of an inherited generic type?

Consider this code :

class MyClass<T>
{
}

class AnotherClass : MyClass<String>
{
}

When I look at the BaseType property of the AnotherType Type, it says that it is Object, where I expected to see the generic MyClass type.

Is there a way to know that AnotherClass inherits MyClass ?

EDIT : The problem was that the MyClass type was actually an interface, so it is totally normal that it is not shown as BaseType.

Upvotes: 2

Views: 233

Answers (2)

Anton Gogolev
Anton Gogolev

Reputation: 115731

Is there any chance that MyClass is actually an interface?

Upvotes: 1

Jon Skeet
Jon Skeet

Reputation: 1500375

Unable to reproduce:

using System;

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

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

Please post the code that's failing.

Upvotes: 8

Related Questions