C# 语言规范_版本5.0 (第11章 结构)】的更多相关文章

1. 结构 结构与类的相似之处在于,它们都表示可以包含数据成员和函数成员的数据结构.但是,与类不同,结构是一种值类型,并且不需要堆分配.结构类型的变量直接包含了该结构的数据,而类类型的变量所包含的只是对相应数据的一个引用(被引用的数据称为“对象”). 结构对于具有值语义的小型数据结构尤为有用.复数.坐标系中的点或字典中的“键-值”对都是结构的典型示例.这些数据结构的关键之处在于:它们只有少量数据成员,它们不要求使用继承或引用标识,而且它们适合使用值语义(赋值时直接复制值而不是复制它的引用)方便地…
1. 词法结构 1.1 程序 C# 程序 (program) 由一个或多个源文件 (source file) 组成,源文件的正式名称是编译单元 (compilation unit)(第 9.1 节).源文件是有序的 Unicode 字符序列.源文件与文件系统中的文件通常具有一对一的对应关系,但这种对应关系不是必需的.为实现可移植性的最大化,建议这些文件在文件系统中应按 UTF-8 编码规范编码. 从概念上讲,程序的编译分三个步骤: 转换,这一步将用特定字符指令系统和编码方案编写的文件转换为 Un…
1. 介绍 C#(读作“See Sharp”)是一种简洁.现代.面向对象且类型安全的编程语言.C# 起源于 C 语言家族,因此,对于 C.C++ 和 Java 程序员,可以很快熟悉这种新的语言.C# 已经分别由 ECMA International 和 ISO/IEC 组织接受并确立了标准,它们分别是 ECMA-334 标准和 ISO/IEC 23270 标准.Microsoft 用于 .NET Framework 的 C# 编译器就是根据这两个标准实现的. C# 是面向对象的语言,然而 C#…
1. 类 类是一种数据结构,它可以包含数据成员(常量和字段).函数成员(方法.属性.事件.索引器.运算符.实例构造函数.静态构造函数和析构函数)以及嵌套类型.类类型支持继承,继承是一种机制,它使派生类可以对基类进行扩展和专用化. 1.1 类声明 class-declaration 是一个 type-declaration(第 9.6 节),它用于声明一个新类. class-declaration: attributesopt   class-modifiersopt   partialopt  …
1. 特性 C# 语言的一个重要特征是使程序员能够为程序中定义的实体指定声明性信息.例如,类中方法的可访问性是通过使用 method-modifiers(public.protected.internal 和 private)加以修饰来指定的. C# 使程序员可以创造新的声明性信息的种类,称为特性 (attributes).然后,程序员可以将这种特性附加到各种程序实体,而且在运行时环境中还可以检索这些特性信息.例如,一个框架可以定义一个名为 HelpAttribute 的特性,该特性可以放在某些…
1. 语句 C# 提供各种语句.使用过 C 和 C++ 编程的开发人员熟悉其中大多数语句. statement: labeled-statement declaration-statement embedded-statement embedded-statement: block empty-statement expression-statement selection-statement iteration-statement jump-statement try-statement ch…
1. 表达式 表达式是一个运算符和操作数的序列.本章定义语法.操作数和运算符的计算顺序以及表达式的含义. 1.1 表达式的分类 一个表达式可归类为下列类别之一: 值.每个值都有关联的类型. 变量.每个变量都有关联的类型,称为该变量的已声明类型. 命名空间.归为此类的表达式只能出现在 member-access(第 7.6.4 节)的左侧.在任何其他上下文中,归类为命名空间的表达式将导致编译时错误. 类型.归为此类的表达式只能出现在 member-access(第 7.6.4 节)的左侧,或作为…
1. 转换 转换(conversion) 使表达式可以被视为一种特定类型.转换可导致将给定类型的表达式视为具有不同的类型,或其可导致没有类型的表达式获得一种类型.转换可以是隐式的 (implicit) 或显式的 (explicit),这将确定是否需要显式地强制转换.例如,从 int 类型到 long 类型的转换是隐式的,因此 int 类型的表达式可隐式地按 long 类型进行处理.从 long 类型到 int 类型的反向转换是显式的,因此需要显式地强制转换. int a = 123; long…
1. 变量 变量表示存储位置.每个变量都具有一个类型,用于确定哪些值可以存储在该变量中.C# 是一种类型安全的语言,C# 编译器保证存储在变量中的值总是具有合适的类型.通过赋值或使用 ++ 和 ‑‑ 运算符可以更改变量的值. 在可以获取变量的值之前,变量必须已明确赋值 (definitely assigned)(第 5.3 节). 如下面的章节所述,变量是初始已赋值 (initially assigned) 或初始未赋值 (initially unassigned).初始已赋值的变量有一个正确定…
1. 类型 C# 语言的类型划分为两大类:值类型 (Value type) 和引用类型 (reference type).值类型和引用类型都可以为泛型类型 (generic type),泛型类型采用一个或多个类型参数.类型参数可以指定值类型和引用类型. type: value-type reference-type type-parameter 第三种类型是指针,只能用在不安全代码中.第 18.2 节对此做了进一步的探讨. 值类型与引用类型的不同之处在于:值类型的变量直接包含其数据,而引用类型的…