C#语言知识标准规范5.0中文版.doc
《C#语言知识标准规范5.0中文版.doc》由会员分享,可在线阅读,更多相关《C#语言知识标准规范5.0中文版.doc(575页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/C#语言规范版本5.0注意 1999-2012 Microsoft Corporation。保留所有权利。Microsoft、Windows、Visual Basic、Visual C# 和 Visual C+ 是 Microsoft Corporation 在美国和/或其他国家/地区的注册商标或商标。本文提及的其他产品和公司名称可能是其各自所有者的商标。/目录1. 介绍11.1 Hello world11.2 程序结构21.3 类型和变量31.4 表达式61.5 语句81.6 类和对象121.6.1 成员121.6.2 可访问性131.6.3 类型形参131.6.4 基类141.6.5 字
2、段141.6.6 方法151.6.6.1 参数151.6.6.2 方法体和局部变量161.6.6.3 静态方法和实例方法171.6.6.4 虚方法、重写方法和抽象方法181.6.6.5 方法重载201.6.7 其他函数成员201.6.7.1 构造函数221.6.7.2 属性231.6.7.3 索引器231.6.7.4 事件241.6.7.5 运算符241.6.7.6 析构函数251.7 结构251.8 数组261.9 接口271.10 枚举281.11 委托291.12 特性302. 词法结构332.1 程序332.2 文法332.2.1 文法表示法332.2.2 词法文法342.2.3 句法
3、文法342.3 语法分析342.3.1 行结束符352.3.2 注释352.3.3 空白362.4 标记372.4.1 Unicode 字符转义序列372.4.2 标识符382.4.3 关键字392.4.4 文本402.4.4.1 布尔值402.4.4.2 整数402.4.4.3 实数412.4.4.4 字符422.4.4.5 字符串432.4.4.6 null 文本452.4.5 运算符和标点符号452.5 预处理指令452.5.1 条件编译符号462.5.2 预处理表达式472.5.3 声明指令472.5.4 条件编译指令482.5.5 诊断指令512.5.6 区域指令512.5.7 行指
4、令522.5.8 Pragma 指令522.5.8.1 Pragma warning523. 基本概念553.1 应用程序启动553.2 应用程序终止563.3 声明563.4 成员583.4.1 命名空间成员583.4.2 结构成员583.4.3 枚举成员593.4.4 类成员593.4.5 接口成员593.4.6 数组成员593.4.7 委托成员593.5 成员访问603.5.1 已声明可访问性603.5.2 可访问域603.5.3 实例成员的受保护访问633.5.4 可访问性约束643.6 签名和重载653.7 范围663.7.1 名称隐藏683.7.1.1 通过嵌套隐藏683.7.1.
5、2 通过继承隐藏693.8 命名空间和类型名称703.8.1 完全限定名723.9 自动内存管理733.10 执行顺序754. 类型774.1 值类型774.1.1 System.ValueType 类型784.1.2 默认构造函数784.1.3 结构类型794.1.4 简单类型794.1.5 整型804.1.6 浮点型814.1.7 decimal 类型824.1.8 bool 类型824.1.9 枚举类型824.1.10 可以为 null 的类型824.2 引用类型834.2.1 类类型844.2.2 对象类型844.2.3 dynamic 类型844.2.4 string 类型844.2
6、.5 接口类型854.2.6 数组类型854.2.7 委托类型854.3 装箱和拆箱854.3.1 装箱转换854.3.2 拆箱转换864.4 构造类型874.4.1 类型实参884.4.2 开放和封闭类型884.4.3 绑定和未绑定类型894.4.4 满足约束894.5 类型形参904.6 表达式树类型904.7 dynamic 类型915. 变量925.1 变量类别925.1.1 静态变量925.1.2 实例变量925.1.2.1 类中的实例变量925.1.2.2 结构中的实例变量935.1.3 数组元素935.1.4 值参数935.1.5 引用参数935.1.6 输出形参935.1.7
7、局部变量945.2 默认值945.3 明确赋值955.3.1 初始已赋值变量955.3.2 初始未赋值变量965.3.3 确定明确赋值的细则965.3.3.1 一般语句规则965.3.3.2 块语句、checked 和 unchecked 语句975.3.3.3 表达式语句975.3.3.4 声明语句975.3.3.5 if 语句975.3.3.6 switch 语句975.3.3.7 while 语句985.3.3.8 do 语句985.3.3.9 for 语句985.3.3.10 break、continue 和 goto 语句985.3.3.11 throw 语句995.3.3.12 r
8、eturn 语句995.3.3.13 try-catch 语句995.3.3.14 try-finally 语句995.3.3.15 try-catch-finally 语句1005.3.3.16 foreach 语句1005.3.3.17 using 语句1015.3.3.18 lock 语句1015.3.3.19 yield 语句1015.3.3.20 简单表达式的一般规则1015.3.3.21 带有嵌入表达式的表达式的一般规则1015.3.3.22 调用表达式和对象创建表达式1025.3.3.23 简单赋值表达式1025.3.3.24 & 表达式1025.3.3.25 | 表达式1035
9、.3.3.26 !表达式1045.3.3.27 ? 表达式1045.3.3.28 ?: 表达式1055.3.3.29 匿名函数1055.4 变量引用1065.5 变量引用的原子性1066. 转换1076.1 隐式转换1076.1.1 标识转换1086.1.2 隐式数值转换1086.1.3 隐式枚举转换1086.1.4 可以为 null 的隐式转换1086.1.5 null 文本转换1096.1.6 隐式引用转换1096.1.7 装箱转换1096.1.8 隐式动态转换1106.1.9 隐式常量表达式转换1106.1.10 涉及类型形参的隐式转换1106.1.11 用户定义的隐式转换1116.1.
10、12 匿名函数转换和方法组转换1116.2 显式转换1116.2.1 显式数值转换1126.2.2 显式枚举转换1136.2.3 可以为 null 的显式转换1136.2.4 显式引用转换1146.2.5 拆箱转换1156.2.6 显式动态转换1156.2.7 涉及类型参数的显式转换1166.2.8 用户定义的显式转换1176.3 标准转换1176.3.1 标准隐式转换1176.3.2 标准显式转换1176.4 用户定义的转换1176.4.1 允许的用户定义转换1176.4.2 提升转换运算符1186.4.3 用户定义转换的计算1186.4.4 用户定义的隐式转换1196.4.5 用户定义的显
11、式转换1196.5 匿名函数转换1206.5.1 匿名函数转换为委托类型的计算1226.5.2 匿名函数转换为表达式树类型的计算1226.5.3 实现示例1226.6 方法组转换1257. 表达式1277.1 表达式的分类1277.1.1 表达式的值1287.2 静态和动态绑定1287.2.1 绑定时间1297.2.2 动态绑定1297.2.3 构成表达式的类型1297.3 运算符1297.3.1 运算符的优先级和顺序关联性1307.3.2 运算符重载1317.3.3 一元运算符重载决策1327.3.4 二元运算符重载决策1327.3.5 候选用户定义运算符1327.3.6 数值提升1337.
12、3.6.1 一元数值提升1337.3.6.2 二元数值提升1337.3.7 提升运算符1347.4 成员查找1357.4.1 基类型1367.5 函数成员1367.5.1 实参列表1387.5.1.1 对应形参1397.5.1.2 实参列表的运行时计算1407.5.2 类型推断1417.5.2.1 第一阶段1427.5.2.2 第二阶段1427.5.2.3 输入类型1437.5.2.4 输出类型1437.5.2.5 依赖1437.5.2.6 输出类型推断1437.5.2.7 参数类型显式推断1437.5.2.8 精确推断1437.5.2.9 下限推断1437.5.2.10 上限推断1447.5
13、.2.11 固定1457.5.2.12 推断返回类型1457.5.2.13 方法组转换的类型推断1467.5.2.14 查找一组表达式的最通用类型1477.5.3 重载决策1477.5.3.1 适用函数成员1477.5.3.2 更好的函数成员1487.5.3.3 表达式的更佳转换1497.5.3.4 类型的更佳转换1497.5.3.5 更佳转换目标1497.5.3.6 泛型类中的重载1507.5.4 动态重载决策的编译时检查1507.5.5 函数成员调用1517.5.5.1 已装箱实例上的调用1527.6 基本表达式1527.6.1 文本1537.6.2 简单名称1537.6.2.1 块中的固
14、定含义1547.6.3 带括号的表达式1557.6.4 成员访问1557.6.4.1 相同的简单名称和类型名称1577.6.4.2 语法多义性1577.6.5 调用表达式1587.6.5.1 方法调用1587.6.5.2 扩展方法调用1597.6.5.3 委托调用1627.6.6 元素访问1627.6.6.1 数组访问1627.6.6.2 索引器访问1637.6.7 this 访问1637.6.8 基访问1647.6.9 后缀增量和后缀减量运算符1657.6.10 new 运算符1667.6.10.1 对象创建表达式1667.6.10.2 对象初始值设定项1677.6.10.3 集合初始值设定
15、项1697.6.10.4 数组创建表达式1707.6.10.5 委托创建表达式1727.6.10.6 匿名对象创建表达式1737.6.11 typeof 运算符1757.6.12 checked 和 unchecked 运算符1767.6.13 默认值表达式1797.6.14 匿名方法表达式1797.7 一元运算符1797.7.1 一元加运算符1797.7.2 一元减运算符1807.7.3 逻辑否定运算符1807.7.4 按位求补运算符1807.7.5 前缀增量和减量运算符1817.7.6 强制转换表达式1817.7.7 Await 表达式1827.7.7.1 可等待的表达式1837.7.7.
16、2 await 表达式的分类1837.7.7.3 await 表达式的运行时计算1837.8 算术运算符1847.8.1 乘法运算符1847.8.2 除法运算符1857.8.3 余数运算符1867.8.4 加法运算符1877.8.5 减法运算符1897.9 移位运算符1907.10 关系和类型测试运算符1927.10.1 整数比较运算符1927.10.2 浮点比较运算符1937.10.3 小数比较运算符1947.10.4 布尔相等运算符1947.10.5 枚举比较运算符1947.10.6 引用类型相等运算符1947.10.7 字符串相等运算符1967.10.8 委托相等运算符1967.10.9
17、 相等运算符和 null1977.10.10 is 运算符1977.10.11 as 运算符1977.11 逻辑运算符1987.11.1 整数逻辑运算符1997.11.2 枚举逻辑运算符1997.11.3 布尔逻辑运算符1997.11.4 可以为 null 的布尔逻辑运算符2007.12 条件逻辑运算符2007.12.1 布尔条件逻辑运算符2017.12.2 用户定义的条件逻辑运算符2017.13 空合并运算符2017.14 条件运算符2027.15 匿名函数表达式2037.15.1 匿名函数签名2057.15.2 匿名函数体2057.15.3 重载决策2057.15.4 匿名函数与动态绑定2
18、067.15.5 外层变量2067.15.5.1 捕获的外层变量2067.15.5.2 局部变量实例化2077.15.6 匿名函数表达式计算2097.16 查询表达式2097.16.1 查询表达式的多义性2117.16.2 查询表达式转换2117.16.2.1 带继续符的 select 和 groupby 子句2117.16.2.2 显式范围变量类型2127.16.2.3 退化查询表达式2127.16.2.4 from、let、where、join 和 orderby 子句2137.16.2.5 select 子句2167.16.2.6 Groupby 子句2177.16.2.7 透明标识符2
19、177.16.3 查询表达式模式2187.17 赋值运算符2197.17.1 简单赋值2207.17.2 复合赋值2227.17.3 事件赋值2237.18 表达式2237.19 常量表达式2237.20 布尔表达式2258. 语句2278.1 结束点和可到达性2278.2 块2298.2.1 语句列表2298.3 空语句2308.4 标记语句2308.5 声明语句2318.5.1 局部变量声明2318.5.2 局部常量声明2328.6 表达式语句2338.7 选择语句2338.7.1 if 语句2338.7.2 switch 语句2348.8 迭代语句2378.8.1 while 语句237
20、8.8.2 do 语句2388.8.3 for 语句2388.8.4 foreach 语句2398.9 跳转语句2428.9.1 break 语句2438.9.2 continue 语句2448.9.3 goto 语句2448.9.4 return 语句2458.9.5 throw 语句2468.10 try 语句2478.11 checked 语句和 unchecked 语句2508.12 lock 语句2508.13 using 语句2518.14 yield 语句2539. 命名空间2559.1 编译单元2559.2 命名空间声明2559.3 Extern 别名2569.4 using
21、指令2579.4.1 using 别名指令2589.4.2 Using 命名空间指令2609.5 命名空间成员2629.6 类型声明2629.7 命名空间别名限定符2639.7.1 别名的唯一性26410. 类26510.1 类声明26510.1.1 类修饰符26510.1.1.1 抽象类26610.1.1.2 密封类26610.1.1.3 静态类26610.1.2 分部修饰符26710.1.3 类型参数26710.1.4 类基本规范26710.1.4.1 基类26810.1.4.2 接口实现26910.1.5 类型形参约束27010.1.6 类体27310.2 分部类型27410.2.1 特
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 语言 知识 标准规范 中文版
限制150内