C# 泛型类型详解:构造类型与泛型控件

需积分: 50 154 下载量 199 浏览量 更新于2024-08-10 收藏 4.46MB PDF 举报
"本文档是C#语言规范的版本5.0,涵盖了C#编程的基础知识,包括泛型类型、构造类型以及各种编程元素如类、对象、方法、属性等。文档强调了构造类型在表达式和访问成员时的使用,并提供了关于命名空间和类型名称解析的规则。此外,还涉及了语言的词法结构,如标识符、关键字和注释的处理。" 在C#中,构造类型是泛型类型的一个实例,它由泛型类型的名称和类型实参组成,例如`Queue<TElement>`。类型实参(TElement)是用于具体化泛型类型的参数,它们被放置在尖括号内,使得泛型类型能够适应多种数据类型。构造类型可以在程序中的多数需要类型名的地方使用,如声明变量、定义方法签名或者创建对象等。 描述中提到了泛型类型的两种用途:作为未绑定的泛型类型和构造类型。未绑定的泛型类型不包含类型实参,通常在typeof表达式中使用,以获取泛型类型的System.Type对象。而构造类型则是通过提供类型实参来创建的具体类型,它可以是表达式的一部分,也可以用来访问类的成员。 在C#中,相同的标识符可以用来表示不同的类型,只要这些类型具有不同的类型形参数量。这个特性在命名空间Widgets的示例中得到体现,其中既有非泛型的`Queue`类,也有泛型的`Queue<TElement>`类。这种设计允许开发者在同一程序中使用同名但功能不同的类,提高了代码的复用性和可读性。 C#5.0的其他关键概念还包括: - 类和对象:类是对象的模板,对象是类的实例,包含数据(字段)和行为(方法)。 - 成员:类可以有字段、方法、构造函数、属性、索引器、事件、运算符和析构函数等成员。 - 类型形参:在类、接口或方法中定义,允许创建泛型代码,提高代码的灵活性。 - 可访问性:public、private、protected等修饰符控制类及其成员的访问级别。 - 基类:类可以继承自另一个类,继承的类称为子类或派生类,被继承的类称为基类或父类。 - 静态与实例方法:静态方法属于类,而实例方法属于类的实例。 - 虚方法、重写方法和抽象方法:支持多态性,允许子类改变或扩展父类的行为。 - 方法重载:允许在同一作用域内使用相同名称但参数列表不同的多个方法。 - 构造函数:用于初始化新创建的对象。 - 属性:提供对类中字段的封装和访问控制。 - 索引器:使类可以像数组一样通过索引来访问数据。 - 接口:定义一组方法签名,类可以实现接口以确保遵循特定的契约。 - 枚举:定义一组命名的整数值。 - 委托:代表方法的类型,支持事件处理和回调机制。 - 特性:允许在代码中添加元数据,以供运行时或工具使用。 C#的词法结构部分则详细介绍了程序的组成,包括标记(如标识符、关键字)、注释、空白的处理,以及Unicode字符的表示方式,这些都是编写合法C#程序的基础。