我正在创建一个将由C#代码使用的模块,所以我宁愿不直接返回LazyList<>
。如果我这样做,C#必须引用FSharp.PowerPack
,这似乎很奇怪。
所以我宁愿返回IList<>
,但当我尝试做类似的事情时
let x = LazyList.ofSeq {0..10}
let y = x :> IList<int32>
然而,这给了我错误:
The type 'LazyList<int> is not compatible with the type 'IList<int>'
这让我相信LazyList<>
不会implement
IList<>
。这是真的吗?
我错过了什么?
答案 0 :(得分:4)
确实,LazyList没有实现IList接口。它虽然实现了IEnumerable。
[<Sealed>]
type LazyList<'T> =
interface IEnumerable<'T>
interface System.Collections.IEnumerable