您可以使用IsAssignableFrom
方法 onType
检查是否Type
可以将一个分配给另一个。
if (typeof(MyEntity).IsAssignableFrom(typeof(T)))
注意:如果你想要它只能是T
或者它MyEntity
的子类,你可以定义通用约束,像这样:
static void Test<T>() where T : MyEntity
{
}
而且像这样的代码Test<object>()
甚至不会编译
您可以IsAssignableFrom
使用以下代码进行检查:
public static void F<T>()
{
var isAssignable = typeof(IEnumerable).IsAssignableFrom(typeof(T));
Console.WriteLine ("{0} is {1} IEnumerable", typeof(T).Name, isAssignable ? "" : "not");
}
例子:
F<IList>(); //prints IList is IEnumerable
F<IEnumerable>(); //prints IEnumerable is IEnumerable
F<object>(); //prints object is not IEnumerable