09 2012 档案
摘要:以下几节中我将对C#2中增加的最重要的特性进行介绍。 1)泛型---作为C#2最重要的新特性(同时也是.NET2.0的CLR中最重要的新特性),泛型实现了类型和方法的参数化。 2)可空类型---值类型没有“值不存在”的概念。有了可空类型之后,就可以表示“缺少一个有意义的值”。 3)委托---虽然委托在CLR的级别上没有任何变化,但C#2使它们使用起来更容易。除了语法得到了一些简化,匿名方法的引入,还引导我们采取更“函数化”的编程风格---这个趋势在C#3中得到了延续。 4)迭代器---虽然一直以来,都可以利用C#的foreach语句来简单地使用迭代器,但C#1中,它实现起来却是一件让人痛苦的.
阅读全文
摘要:在.NET中做得一切其实都是和一个值类型或者引用类型打交道,但极有可能一些人使用C#开发了很长时间,对这些差异也只是有一个模糊的概念。更糟糕的是,可能还存在着一些误解。稍不留神,就很容易作出一个简短但不正确的陈述。这里我将做简要讨论只是为了深入更高版本C#的世界,C#1的哪些主题的基本元素是必须理解的。 先来看看值类型和引用类型的基本差异在现实世界和在.NET中是如何自然体现的。 现实世界中的值和引用 假定你正在读一份报纸,为了给朋友一个副本,需要复印报纸的全部内容并交给他。这样,他将获得属于他自己的一份完整的副本。在这种情况下,我们处理的是值类型的行为。你的报纸和你朋友的副本都是各自独立的.
阅读全文