7

C# 主要是 stronglt 类型,但是,有一些奇怪的行为:

例如,当滚动您自己的枚举器类时,您不必实现 IEnumerable,您只需实现一个名为 GetEnuerator() 的方法,您仍然可以foreach覆盖它。

一些 Linq 支持也是如此,您可以通过提供一些select where方法等来编写自己的 Linq 提供程序。

那么为什么using(x){}声明需要 IDisposable 呢?

我确实明白为什么可以以这种方式编写 linq 提供程序,因为没有要完成的固定合同,只有一种方法模式。

为什么 C# 编译器(或语言规范?)的设计方式是某些内置语言结构需要接口,而其他语言结构不需要接口?

4

0 回答 0