我可以创建如下代码:
using System;
using System.Collections;
class Program
{
static void Main()
{
Test test = new Test { 1, 2, 3 };
}
}
class Test : IEnumerable
{
public IEnumerator GetEnumerator()
{
throw new NotImplementedException();
}
public void Add(int i) { }
}
因为我已经满足了编译器的最低要求(实现了 IEnumerable
和 public void Add
),所以这个可以工作,但是显然没有价值。
我想知道C#团队为什么不创建一个更严格的要求集?换句话说,为什么为了使这个语法编译,编译器不要求类型实现ICollection
?那似乎更符合其他C#功能的精神。