【发布时间】:2011-01-29 15:08:03
【问题描述】:
我有一段代码需要确定给定类型是否实现 IEnumerable<T>(我不关心 T)
我已经尝试过(t:System.Type 以防你想知道)
let interfaces = t.GetInterfaces()
let enumerbale =
interfaces.Any(fun t ->
t.GetGenericTypeDefinition() = typeof<IEnumerable<>>
)
但是那不会编译(编译不喜欢 )。然后我尝试了
let interfaces = t.GetInterfaces()
let enumerbale =
interfaces.Any(fun t ->
t.GetGenericTypeDefinition() = typeof<IEnumerable<'a>>
)
但是得到一个警告,'a 是对 obj 的约束。我不想弄清楚IEnumerable<obj> 是否已实现但IEnumerabl<>。
任何人都知道解决方案,顺便说一句,也可以对上面的代码发表评论。
【问题讨论】:
标签: reflection f# c#-to-f#