我想做这样的事情:
class SomeClass<T>
{
SomeClass()
{
bool IsInterface = T is ISomeInterface;
}
}
对于这样的事情,最好的方法是什么?
注意:我并不打算用where
来约束T
,但我希望我的代码能够知道T
实现了什么类型的接口。我希望我不需要构造一个T
。
发布于 2010-02-20 04:12:56
我不认为您可以使用is
运算符来执行此操作。但是你可以使用IsAssignableFrom:
bool IsInterface = typeof(ISomeInterface).IsAssignableFrom(typeof(T));
发布于 2010-02-20 04:14:20
您可以使用IsAssignableFrom
class SomeClass<T>
{
SomeClass()
{
bool IsIComparable = typeof(IComparable).IsAssignableFrom(typeof(T));
}
}
发布于 2010-02-20 04:14:30
bool IsInterface = typeof(ISomeInterface).IsAssignableFrom(typeof(T))
https://stackoverflow.com/questions/2299226
复制相似问题