【发布时间】:2016-04-09 04:26:36
【问题描述】:
我有一个 MyGeneric
我必须检查某些数据以查看它是否是 MyGeneric,我的代码如下:
if (data is MyGeneric<>) { // can't compile
// ... do something
}
或
if (data.GetType() == typeof(MyGeneric<>)
|| typeof(MyGeneric<>).isAssginableFrom(data.GetType())) {
// no exception but none of these comparison works
}
或者这种愚蠢的实现有效,但我想把它扔掉:
if (data.GetType().Name.StartsWith(typeof(MyGeneric<>).Name) { ... }
有没有办法检查实际数据类型和开放泛型类型(MyGeneric)之间的关系?
【问题讨论】:
标签: c# generics comparison open-generics