.NET Framework在4.0版本中添加了一个ISet接口。同时,F#也被添加为一种一流的语言,并提供了一个不可变的Set<'T>类。虽然逻辑上应该将此类实现ISet,但它却没有这样做。有人知道为什么吗?我的猜想是他们不想实现旨在可变的接口,但我认为这个解释站不住脚。毕竟,他们的Map类实现了IDictionary,这是可变的。而且在框架的其他地方还有类实现了只部分适合的接口的例子。我认为可能是因为ISet是新的接口,所以他们还没有去处理它。但这似乎不太充分。是否因为ISet是泛型的(相对于IDictionary而言),所以没有这样做呢?欢迎留下您的想法。
ReadOnlyCollection<T>
实现了可变接口ICollection<T>
。 - Steven