假设我有一个类型MyType。我要做到以下几点:查明一个类型是否实现了通用接口
- 查找出来,如果MyType的实现IList接口,对于一些T.
- 如果答案(1)是肯定的,找出T是什么。
看起来像这样做的方法是GetInterface(),但它只允许您按特定名称进行搜索。有没有一种方法来搜索“是形式的IList的所有接口”
相关(如果可能的话,也woudl如果它的工作,如果接口是IList中的子接口是有用的。):How to determine if a type implements a specific generic interface type
这也处理数组的情况,这很好。如果你想明确地测试数组,那么使用“if(myType.IsArray)return myType.GetElementType();” (虽然这可能会更快,但我希望这些都不是性能问题!) – yoyo 2013-05-28 21:27:57
对于像我这样对于需要.IsInterface的原因感兴趣的用户:GetGenericTypeDefinition()会在非泛型类型上调用时抛出。 – GameFreak 2016-10-29 01:46:53