C#2.0 Specification(泛型一)[6]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 tlping 的 blog

型参数纯粹只是一个编译时构件。在运行时,每个类型参数被绑定到运行时类型,它是通过泛型类型声明所提供的类型实参所指定的。为此,在运行时,使用类型参数声明的变量类型是一个封闭类型(closed type)(§20.5.2)。所有语句和表达式在运行时执行所使用的类型参数,都是由那个参数作为类型实参而提供的实际类型。

20.1.2实例类型

每个类声明都有与之关联的构造类型,即实例类型(instance type)对于一个泛型类声明,实例类型通过创建一个来自于类型声明的构造类型(§20.4)而形成,它使用对应于类型参数的每一个类型实参。由于实例化类型使用类型参数,在类型参数作用域内(类声明之内),它是唯一有效的。实例类型在类声明中是this的类型。对于非泛型类,实例类型只是一个声明类型。下面展示了几个声明类,以及它们的实例类型。

class a<t>      //实例类型:a<t>

{

    class b{}       //实例类型:a<t>.b

    class c<u>{}        //实例类型:a<t>.c<u>

}

class d{}       //实例类型:d

 

20.1.3基类规范

在类声明中指定的基类可以是一个构造类型(§20.5)。一个基类其自身不能是一个类型参数,但在其作用域内可以包含类型参数。

 


class extend<v>: v{}//错误,类型参数被用作基类

本文关键:C# 2.0
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top