C#语言规范:数组创建与类型系统

需积分: 45 33 下载量 174 浏览量 更新于2024-08-07 收藏 4.67MB PDF 举报
"C#语言规范,第五版,中文版,主要涵盖了C#编程中的核心概念,包括数组创建、类型和变量、表达式、语句、类和对象、结构、数组、接口、枚举、委托以及特性等内容。" 在C#编程语言中,数组是一种重要的数据结构,用于存储同类型的多个数据项。在标题"数组创建-rfc1035(中文) 域名---实现及标准"中,虽然没有直接提到rfc1035与域名的关系,但可以推测这可能是指在处理DNS(域名系统)相关的程序时,可能会用到数组来存储和操作域名数据。 数组的创建有两种主要方式:通过`array-creation-expression`或在字段声明和局部变量声明中包含`array-initializer`。`array-creation-expression`通常涉及使用new运算符,例如`int[] arr = new int[5];`,这会创建一个包含5个整数元素的新数组。而`array-initializer`允许在创建时直接初始化数组的值,如`int[] arr = {1, 2, 3, 4, 5};`。 创建数组时,会确定其秩(rank,即数组的维度数,例如一维、二维数组等)和每个维度的长度。一旦数组实例化后,这些属性是不可变的,这意味着不能改变数组的秩或扩展其维度大小。数组实例总是属于某种特定的数组类型,这些类型都是从抽象基类`System.Array`派生的,但`System.Array`本身是无法直接实例化的。 数组的元素在创建时会被自动初始化为其默认值。对于值类型,如整数、浮点数,它们的默认值通常是零;对于引用类型,如对象,其默认值是`null`。 在C#语言规范的描述中,我们可以看到关于程序结构、类型和变量、表达式、语句、类和对象的详细定义。类和对象是面向对象编程的基础,它们包含成员(如字段、方法等),具有可访问性控制(public、private等)、类型形参(泛型)、基类继承、字段定义、方法实现(包括参数、局部变量、静态与实例方法、虚方法、重写、抽象方法、方法重载)、其他成员(构造函数、属性、索引器、事件、运算符、析构函数)等。 结构(structs)是值类型,与类(classes)不同,它们不支持继承,但可以提供轻量级的数据封装。数组章节详细阐述了数组的创建、操作和特性,包括不同维度的数组和多维数组的使用。接口(interfaces)定义了一组方法签名,作为契约供其他类或结构实现。枚举(enums)允许定义一组命名的常数值。委托(delegates)是类型安全的事件处理器引用,它们可以指向方法。最后,特性(attributes)提供了元数据,允许在代码中附加信息,以供编译器或运行时环境使用。 C#的词法结构部分介绍了程序的基本构成,包括行结束符、注释、空白、标记(如标识符、关键字、文本)以及文法规则,这些都是编写合法C#代码所必需的基础知识。 C#语言规范提供了全面的指南,涵盖了编程中的各种概念,是理解和编写C#代码的重要参考资料。