【发布时间】:2013-11-27 01:05:05
【问题描述】:
假设我有:
class MyBase<T1, T2>{}
class MyConcreteBase<T2> : MyBase<ConcreteType1, T2>{}
class MyConcrete1 : MyConcreteBase<ConcreteType2>{}
class MyConcrete2 : MyBase<ConcreteType1, ConcreteType2>{}
如果我有 MyConcrete1 或 MyConcrete2 或 MyConcreteBase 或派生自 MyBase<T1, T2> 的任何其他类型实例,我如何获得 T1 和 T2 的类型
我现在的做法是通过继承链“起床”,使用.GetType().BaseType 而BaseType.Name.StartsWith("MyBase"),然后使用.GetGenericArguments()
它正在工作,但我对此并不满意,尤其是.StartsWith("MyBase") 部分。
还有其他建议吗?
【问题讨论】:
-
我的回答很快被否决了。
-
@BoltClock 这是对错误问题的错误答案。
-
@siride:确实。我只是在评论它有多快:)
标签: c# reflection