public static void Main()
Pop<ClassDescriptor>(new ClassDescriptor());
Pop<ClassDescriptor>(null);
Console.WriteLine(typeof(ClassDescriptor).IsSubclassOf(typeof(NullableDescriptor)));
public static T Pop<T>(object value) {
Console.WriteLine(typeof(T));
if (typeof(T).IsSubclassOf(typeof(NullableDescriptor))) {
Console.WriteLine("is subclass");
public interface NullableDescriptor{}
public class ClassDescriptor : NullableDescriptor{}