C#2.0新特性系列文章转载

随着 Visual Studio 2005 的发布,C# 语言已更新为 2.0 版,它支持下列新功能:

泛型
该语言中添加了一些泛型类型,使得程序员能够实现程度很高的代码重用,获得更高的集合类性能。泛型类型只存在 arity 上的不同。也可以将参数强制为特定的类型。

迭代器
迭代器使得规定 foreach 循环将如何循环访问集合的内容变得更加容易。

分部类
分部类型定义允许将单个类型(比如某个类)拆分为多个文件。Visual Studio 设计器使用此功能将它生成的代码与用户代码分离。

可空类型
可空类型允许变量包含未定义的值。在使用数据库和其他可能包含未含有具体值的元素的数据结构时,可以使用可空类型。

匿名方法
现在,可以将代码块作为参数来传递。在本应使用委托的任何地方,都可以使用代码块来取代:不需要定义新的方法。

命名空间别名限定符
命名空间别名限定符 (::) 对访问命名空间成员提供了更多控制。global :: 别名允许访问可能被代码中的实体隐藏的根命名空间。

静态类
若要声明那些包含不能实例化的静态方法的类,静态类就是一种安全而便利的方式。C# 1.2 版要求将类构造函数定义为私有的,以防止类被实例化。

外部程序集别名
通过 extern 关键字的这种扩展用法引用包含在同一程序集中的同一组件的不同版本。

属性访问器可访问性
现在可以为属性的 get 和 set 访问器定义不同级别的可访问性。

委托中的协变和逆变
现在传递给委托的方法在返回类型和参数方面可以具有更大的灵活性。

如何:声明、实例化和使用委托
方法组转换为声明委托提供了一种更简单的语法。

固定大小的缓冲区
在不安全的代码块中,现在可以声明包含嵌入数组的固定大小结构。

友元程序集
程序集可以提供对其他程序集的非公共类型的访问。

内联警告控制
#pragma 警告指令可用于禁用和启用某些编译器警告。

volatile
现在可以将 volatile 关键字应用于 IntPtr 和 UIntPtr。



转载:C# 泛型简介


泛型问题陈述
什么是泛型
应用泛型
一般约束
泛型和强制类型转换
继承和泛型
一般方法
一般委托
泛型和反射
泛型和 .NET Framework
小结


转载:C#中的泛型

泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明、实现。这意味着使用泛型的类型参数T,写一个类MyList,客户代码可以这样调用:MyList, MyList或 MyList。这避免了运行时类型转换或装箱操作的代价和风险。



目录
C#中的泛型. 1
一、泛型概述. 2
二、泛型的优点. 5
三、泛型类型参数. 7
四、类型参数的约束. 8
五、泛型类. 11
六、泛型接口. 13
七、泛型方法. 19
八、泛型委托. 21
九、泛型代码中的default关键字. 23
十、C++模板和C#泛型的区别. 24
十一、运行时中的泛型. 25
十二、基础类库中的泛型. 27


转载:匿名方法
摘要:3.1 匿名方法表达式
3.2 匿名方法签名
3.3 匿名方法转换
3.3.1 委托建立表达式
3.4 匿名方法块
3.5 外部变量
3.5.1 捕获外部变量
3.5.2 局部变量的实例化
3.6 匿名方法求值
3.7 委托实例相等性
3.8 明确赋值
3.9 方法组转换
3.10 实现实例


转载:迭代器

摘要:4.1 迭代器块
4.1.1 枚举器接口
4.1.2 可枚举接口
4.1.3 生成的类型
4.1.4 this访问
4.2 Enumerator对象
4.2.1 MoveNext()方法
4.2.2 Current属性
4.2.3 Dispose()方法
4.3 Enumerable对象
4.3.1 GetEnumerator()方法
4.4 yield语句
4.4.1 有限赋值
4.5 实例



转载:不完全类型

原文地址:https://www.cnblogs.com/birdshover/p/424466.html