C# 语言规范:类型声明详解

需积分: 50 154 下载量 59 浏览量 更新于2024-08-10 收藏 4.46MB PDF 举报
"C#编程语言规范的9.5章节关于命名空间成员和9.6章节关于类型声明的详细解释" 在C#编程语言中,命名空间(namespace)是用来组织代码的一种方式,它允许我们将相关的类型和命名空间成员聚集在一起。在9.5章节中,命名空间成员(namespace-member-declaration)可以是另一个命名空间声明或者是类型声明。类型声明则是类(class)、结构(struct)、接口(interface)、枚举(enum)或委托(delegate)的声明。 命名空间成员声明的语法结构如下: ```markdown namespace-member-declarations: namespace-member-declaration namespace-member-declarations namespace-member-declaration ``` 这意味着一个命名空间可以包含一个或多个这样的声明,每个声明可以是一个新的命名空间或者一个类型。 在9.6章节中,类型声明定义了如何创建新的类型。它涵盖了以下五种类型: 1. **类声明 (class-declaration)** - 定义了一个引用类型,通常用于封装数据和操作这些数据的方法。 2. **结构声明 (struct-declaration)** - 定义了一个值类型,它可以直接存储在内存中,通常用于简单的数据结构。 3. **接口声明 (interface-declaration)** - 定义了一组成员,但不提供实现,供其他类或结构实现。 4. **枚举声明 (enum-declaration)** - 创建一组命名的整数常量。 5. **委托声明 (delegate-declaration)** - 代表一个方法的签名,可用于事件处理或函数回调。 类型声明可以出现在编译单元的顶级,也可以作为命名空间、类或结构的成员。在顶级声明中,类型名称即为其完全限定名。而在命名空间、类或结构内部声明的类型,其完全限定名会包含包含它的命名空间、类或结构的名称。 类型声明的访问修饰符(access modifiers)决定了类型的可见性。在不同的上下文中,可用的访问修饰符和默认访问权限有所不同: - **编译单元或命名空间** 中声明的类型,默认为 `internal` 访问权限,也可设置为 `public`。 - **类** 内部声明的类型,默认为 `private` 访问权限,可设置为 `public`, `protected internal`, `protected`, 或 `internal`。 - **结构** 内部声明的类型,默认为 `private` 访问权限,可设置为 `public` 或 `internal`。 在类中声明的类型被称为嵌套类型。嵌套类型可以有更细粒度的封装,使得代码结构更加清晰。 C# 5.0语言规范的其余部分涵盖了许多其他主题,如程序结构、类型和变量、表达式、语句、类和对象的细节,以及其他核心语言特性如接口、数组、枚举、委托和特性等。了解并熟练掌握这些概念是成为一名合格的C#开发者的基础。