我有一段代碼,我需要找出如果一個給定的類型實現IEnumerable<T>
(我不關心T)F#當量的C#的typeof的(IEnumerable的<>)
我已經試過(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<>
。
任何人都知道的解決方案,順便說一句,也可以自由地評論上面的代碼。
http://stackoverflow.com/questions/1652050/generic-type-definition-發現之一syntax-on-f – 2010-03-20 22:40:06