1、Filename: 35c6ee658dac410adc4c609397466425.pdf 1C# 语言规范摘要本文描述 C# 编程语言的语法、语义和设计。作者Scott Wiltamuth 和 Anders HejlsbergFilename: 35c6ee658dac410adc4c609397466425.pdf 2目录C# 语言规范 .1目录 .21. 介绍 .171.1 开始 .181.2 类型 .191.2.1 预定义类型 .221.2.2 转换 .241.2.3 数组类型 .251.2.4 类型系统统一化 .281.3 变量和参数 .291.4 自动内存管理 .341.5 表达
2、式 .371.6 语句 .381.7 类 .421.7.1 常数 .451.7.2 字段 .461.7.3 方法 .481.7.4 属性 .501.7.5 事件 .511.7.6 运算符 .531.7.7 索引器 .551.7.8 实例构造函数 .571.7.9 析构函数 .591.7.10 静态构造函数 .601.7.11 继承 .611.8 结构 .631.9 接口 .641.10 委托 .661.11 枚举 .671.12 命名空间和程序集 .681.13 版本控制 .701.14 属性 .73Filename: 35c6ee658dac410adc4c609397466425.pdf
3、32. 词法结构 .752.1 程序 .762.2 语法 .772.2.1 文法表示法 .782.2.2 词法文法 .792.2.3 句法文法 .802.3 词法分析 .812.3.1 行结束符 .822.3.2 空白 .832.3.3 注释 .842.4 标记 .862.4.1 Unicode 字符转义序列 .872.4.2 标识符 .882.4.3 关键字 .902.4.4 文本 .912.4.4.1 布尔值 .922.4.4.2 整数 .932.4.4.3 实数 .952.4.4.4 字符 .962.4.4.5 字符串 .972.4.4.6 空文本 .992.4.5 运算符和标点符号 .
4、1002.5 预处理指令 .1012.5.1 条件编译符号 .1032.5.2 预处理表达式 .1042.5.3 声明指令 .1052.5.4 条件编译指令 .1072.5.5 诊断指令 .1102.5.6 区域指令 .1112.5.7 行指令 .1123. 基本概念 .1133.1 应用程序启动 .1143.2 应用程序终止 .1153.3 声明 .116Filename: 35c6ee658dac410adc4c609397466425.pdf 43.4 成员 .1193.4.1 命名空间成员 .1203.4.2 结构成员 .1213.4.3 枚举成员 .1223.4.4 类成员 .123
5、3.4.5 接口成员 .1243.4.6 数组成员 .1253.4.7 委托成员 .1263.5 成员访问 .1273.5.1 已声明可访问性 .1283.5.2 可访问域 .1293.5.3 实例成员的受保护访问 .1323.5.4 可访问性约束 .1333.6 签名和重载 .1343.7 范围 .1353.7.1 名称隐藏 .1383.7.1.1 通过嵌套隐藏 .1393.7.1.2 通过继承隐藏 .1403.8 命名空间和类型名称 .1423.8.1 完全限定名 .1443.9 自动内存管理 .1453.10 执行顺序 .1484. 类型 .1494.1 值类型 .1504.1.1 Sy
6、stem.ValueType 类型 .1514.1.2 默认构造函数 .1524.1.3 结构类型 .1534.1.4 简单类型 .1544.1.5 整型 .1554.1.6 浮点型 .1564.1.7 decimal 类型 .1574.1.8 bool 类型 .1584.1.9 枚举类型 .1594.2 引用类型 .160Filename: 35c6ee658dac410adc4c609397466425.pdf 54.2.1 类类型 .1614.2.2 对象类型 .1624.2.3 string 类型 .1634.2.4 接口类型 .1644.2.5 数组类型 .1654.2.6 委托类型
7、 .1664.3 装箱和取消装箱 .1674.3.1 装箱转换 .1684.3.2 取消装箱转换 .1705. 变量 .1715.1 变量类别 .1725.1.1 静态变量 .1735.1.2 实例变量 .1745.1.2.1 类中的实例变量 .1755.1.2.2 结构中的实例变量 .1765.1.3 数组元素 .1775.1.4 值参数 .1785.1.5 引用参数 .1795.1.6 输出参数 .1805.1.7 局部变量 .1815.2 默认值 .1825.3 明确赋值 .1835.3.1 初始已赋值变量 .1845.3.2 初始未赋值变量 .1855.3.3 确定明确赋值的细则 .1
8、865.3.3.1 一般语句规则 .1875.3.3.2 块语句、checked 和 unchecked 语句 .1885.3.3.3 表达式语句 .1895.3.3.4 声明语句 .1905.3.3.5 if 语句 .1915.3.3.6 switch 语句 .1925.3.3.7 while 语句 .1935.3.3.8 do 语句 .1945.3.3.9 for 语句 .195Filename: 35c6ee658dac410adc4c609397466425.pdf 65.3.3.10 break、continue 和 goto 语句 .1965.3.3.11 throw 语句 .19
9、75.3.3.12 return 语句 .1985.3.3.13 try-catch 语句 .1995.3.3.14 try-finally 语句 .2005.3.3.15 try-catch-finally 语句 .2015.3.3.16 foreach 语句 .2035.3.3.17 using 语句 .2045.3.3.18 lock 语句 .2055.3.3.19 简单表达式的一般规则 .2065.3.3.20 带有嵌入表达式的表达式的一般规则 .2075.3.3.21 调用表达式和对象创建表达式 .2085.3.3.22 简单赋值表达式 .2095.3.3.23 & 表达式 .210
10、5.3.3.24 | 表达式 .2115.3.3.25 ! 表达式 .2125.3.3.26 ?: 表达式 .2135.4 变量引用 .2145.5 变量引用的原子性 .2156. 转换 .2166.1 隐式转换 .2176.1.1 标识转换 .2186.1.2 隐式数值转换 .2196.1.3 隐式枚举转换 .2206.1.4 隐式引用转换 .2216.1.5 装箱转换 .2226.1.6 隐式常数表达式转换 .2236.1.7 用户定义的隐式转换 .2246.2 显式转换 .2256.2.1 显式数值转换 .2266.2.2 显式枚举转换 .2286.2.3 显式引用转换 .2296.2.4 取消装箱转换 .2306.2.5 用户定义的显式转换 .