从此以后事情变得有趣起来。 让我们看看 C# 2.0(2005 年发布)和 Visual Studio 2005 中的一些主要功能:

除现有功能以外的其他 C# 2.0 功能:

  • getter/setter 单独可访问性
  • 方法组转换(委托)
  • 静态类
  • 委托推断

C# 一开始是面向对象的 (OO) 通用语言,而 C# 2.0 版很快改变了这一点。 做好基础准备后,他们开始追求解决一些严重影响开发者的难点。 且他们以显著的方式追求这些难点。

通过泛型,类型和方法可以操作任意类型,同时保持类型安全性。 例如,通过 List,将获得 List 或 List 并且可以对这些字符串或整数执行类型安全操作,同时对其进行循环访问。 使用泛型优于创建派生自 ArrayList 的 ListInt 或者从每个操作的 Object 强制转换。

C# 2.0 版引入了迭代器。 简单来说,迭代器允许使用 foreach 循环来检查 List(或其他可枚举类型)中的所有项。 拥有迭代器是该语言最重要的一部分,显著提升了语言的可读性以及人们推出代码的能力。

不过 C# 依然在追赶 Java 的道路上。 当时 Java 已发布包含泛型和迭代器的版本。 但是随着语言各自的演化,形势很快发生了变化。