C语言规范中文版.docx
- 文档编号:320819
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:515
- 大小:737.12KB
C语言规范中文版.docx
《C语言规范中文版.docx》由会员分享,可在线阅读,更多相关《C语言规范中文版.docx(515页珍藏版)》请在冰豆网上搜索。
C#
语言规范
版本5.0
注意
©1999-2012MicrosoftCorporation。
保留所有权利。
Microsoft、Windows、VisualBasic、VisualC#和VisualC++是MicrosoftCorporation在美国和/或其他国家/地区的注册商标或商标。
本文提及的其他产品和公司名称可能是其各自所有者的商标。
版权所有MicrosoftCorporation1999-2012。
保留所有权利。
请将更正、建议及其他反馈信息发送至csharp@
目录
目录
1.介绍 1
1.1Helloworld 1
1.2程序结构 2
1.3类型和变量 3
1.4表达式 6
1.5语句 8
1.6类和对象 12
1.6.1成员 12
1.6.2可访问性 13
1.6.3类型形参 13
1.6.4基类 14
1.6.5字段 14
1.6.6方法 15
1.6.6.1参数 15
1.6.6.2方法体和局部变量 16
1.6.6.3静态方法和实例方法 17
1.6.6.4虚方法、重写方法和抽象方法 18
1.6.6.5方法重载 20
1.6.7其他函数成员 20
1.6.7.1构造函数 22
1.6.7.2属性 23
1.6.7.3索引器 23
1.6.7.4事件 24
1.6.7.5运算符 24
1.6.7.6析构函数 25
1.7结构 25
1.8数组 26
1.9接口 27
1.10枚举 28
1.11委托 29
1.12特性 30
2.词法结构 33
2.1程序 33
2.2文法 33
2.2.1文法表示法 33
2.2.2词法文法 34
2.2.3句法文法 34
2.3语法分析 34
2.3.1行结束符 35
2.3.2注释 35
2.3.3空白 36
2.4标记 37
2.4.1Unicode字符转义序列 37
2.4.2标识符 38
2.4.3关键字 39
2.4.4文本 40
2.4.4.1布尔值 40
2.4.4.2整数 40
2.4.4.3实数 41
2.4.4.4字符 42
2.4.4.5字符串 43
2.4.4.6null文本 45
2.4.5运算符和标点符号 45
2.5预处理指令 45
2.5.1条件编译符号 46
2.5.2预处理表达式 47
2.5.3声明指令 47
2.5.4条件编译指令 48
2.5.5诊断指令 51
2.5.6区域指令 51
2.5.7行指令 52
2.5.8Pragma指令 52
2.5.8.1Pragmawarning 52
3.基本概念 55
3.1应用程序启动 55
3.2应用程序终止 56
3.3声明 56
3.4成员 58
3.4.1命名空间成员 58
3.4.2结构成员 58
3.4.3枚举成员 59
3.4.4类成员 59
3.4.5接口成员 59
3.4.6数组成员 59
3.4.7委托成员 59
3.5成员访问 60
3.5.1已声明可访问性 60
3.5.2可访问域 60
3.5.3实例成员的受保护访问 63
3.5.4可访问性约束 64
3.6签名和重载 65
3.7范围 66
3.7.1名称隐藏 68
3.7.1.1通过嵌套隐藏 68
3.7.1.2通过继承隐藏 69
3.8命名空间和类型名称 70
3.8.1完全限定名 72
3.9自动内存管理 73
3.10执行顺序 75
4.类型 77
4.1值类型 77
4.1.1System.ValueType类型 78
4.1.2默认构造函数 78
4.1.3结构类型 79
4.1.4简单类型 79
4.1.5整型 80
4.1.6浮点型 81
4.1.7decimal类型 82
4.1.8bool类型 82
4.1.9枚举类型 82
4.1.10可以为null的类型 82
4.2引用类型 83
4.2.1类类型 84
4.2.2对象类型 84
4.2.3dynamic类型 84
4.2.4string类型 84
4.2.5接口类型 85
4.2.6数组类型 85
4.2.7委托类型 85
4.3装箱和拆箱 85
4.3.1装箱转换 85
4.3.2拆箱转换 86
4.4构造类型 87
4.4.1类型实参 88
4.4.2开放和封闭类型 88
4.4.3绑定和未绑定类型 89
4.4.4满足约束 89
4.5类型形参 90
4.6表达式树类型 90
4.7dynamic类型 91
5.变量 92
5.1变量类别 92
5.1.1静态变量 92
5.1.2实例变量 92
5.1.2.1类中的实例变量 92
5.1.2.2结构中的实例变量 93
5.1.3数组元素 93
5.1.4值参数 93
5.1.5引用参数 93
5.1.6输出形参 93
5.1.7局部变量 94
5.2默认值 94
5.3明确赋值 95
5.3.1初始已赋值变量 95
5.3.2初始未赋值变量 96
5.3.3确定明确赋值的细则 96
5.3.3.1一般语句规则 96
5.3.3.2块语句、checked和unchecked语句 97
5.3.3.3表达式语句 97
5.3.3.4声明语句 97
5.3.3.5if语句 97
5.3.3.6switch语句 97
5.3.3.7while语句 98
5.3.3.8do语句 98
5.3.3.9for语句 98
5.3.3.10break、continue和goto语句 98
5.3.3.11throw语句 99
5.3.3.12return语句 99
5.3.3.13try-catch语句 99
5.3.3.14try-finally语句 99
5.3.3.15try-catch-finally语句 100
5.3.3.16foreach语句 100
5.3.3.17using语句 101
5.3.3.18lock语句 101
5.3.3.19yield语句 101
5.3.3.20简单表达式的一般规则 101
5.3.3.21带有嵌入表达式的表达式的一般规则 101
5.3.3.22调用表达式和对象创建表达式 102
5.3.3.23简单赋值表达式 102
5.3.3.24&&表达式 102
5.3.3.25||表达式 103
5.3.3.26!
表达式 104
5.3.3.27?
?
表达式 104
5.3.3.28?
:
表达式 105
5.3.3.29匿名函数 105
5.4变量引用 106
5.5变量引用的原子性 106
6.转换 107
6.1隐式转换 107
6.1.1标识转换 108
6.1.2隐式数值转换 108
6.1.3隐式枚举转换 108
6.1.4可以为null的隐式转换 108
6.1.5null文本转换 109
6.1.6隐式引用转换 109
6.1.7装箱转换 109
6.1.8隐式动态转换 110
6.1.9隐式常量表达式转换 110
6.1.10涉及类型形参的隐式转换 110
6.1.11用户定义的隐式转换 111
6.1.12匿名函数转换和方法组转换 111
6.2显式转换 111
6.2.1显式数值转换 112
6.2.2显式枚举转换 113
6.2.3可以为null的显式转换 113
6.2.4显式引用转换 114
6.2.5拆箱转换 115
6.2.6显式动态转换 115
6.2.7涉及类型参数的显式转换 116
6.2.8用户定义的显式转换 117
6.3标准转换 117
6.3.1标准隐式转换 117
6.3.2标准显式转换 117
6.4用户定义的转换 117
6.4.1允许的用户定义转换 117
6.4.2提升转换运算符 118
6.4.3用户定义转换的计算 118
6.4.4用户定义的隐式转换 119
6.4.5用户定义的显式转换 119
6.5匿名函数转换 120
6.5.1匿名函数转换为委托类型的计算 122
6.5.2匿名函数转换为表达式树类型的计算 122
6.5.3实现示例 122
6.6方法组转换 125
7.表达式 127
7.1表达式的分类 127
7.1.1表达式的值 128
7.2静态和动态绑定 128
7.2.1绑定时间 129
7.2.2动态绑定 129
7.2.3构成表达式的类型 129
7.3运算符 129
7.3.1运算符的优先级和顺序关联性 130
7.3.2运算符重载 131
7.3.3一元运算符重载决策 132
7.3.4二元运算符重载决策 132
7.3.5候选用户定义运算符 132
7.3.6数值提升 133
7.3.6.1一元数值提升 133
7.3.6.2二元数值提升 133
7.3.7提升运算符 134
7.4成员查找 135
7.4.1基类型 136
7.5函数成员 136
7.5.1实参列表 138
7.5.1.1对应形参 139
7.5.1.2实参列表的运行时计算 140
7.5.2类型推断 141
7.5.2.1第一阶段 142
7.5.2.2第二阶段 142
7.5.2.3输入类型 143
7.5.2.4输出类型 143
7.5.2.5依赖 143
7.5.2.6输出类型推断 143
7.5.2.7参数类型显式推断 143
7.5.2.8精确推断 143
7.5.2.9下限推断 143
7.5.2.10上限推断 144
7.5.2.11固定 145
7.5.2.12推断返回类型 145
7.5.2.13方法组转换的类型推断 146
7.5.2.14查找一组表达式的最通用类型 147
7.5.3重载决策 147
7.5.3.1适用函数成员 147
7.5.3.2更好的函数成员 148
7.5.3.3表达式的更佳转换 149
7.5.3.4类型的更佳转换 149
7.5.3.5更佳转换目标 149
7.5.3.6泛型类中的重载 150
7.5.4动态重载决策的编译时检查 150
7.5.5函数成员调用 151
7.5.5.1已装箱实例上的调用 152
7.6基本表达式 152
7.6.1文本 153
7.6.2简单名称 153
7.6.2.1块中的固定含义 154
7.6.3带括号的表达式 155
7.6.4成员访问 155
7.6.4.1相同的简单名称和类型名称 157
7.6.4.2语法多义性 157
7.6.5调用表达式 158
7.6.5.1方法调用 158
7.6.5.2扩展方法调用 159
7.6.5.3委托调用 162
7.6.6元素访问 162
7.6.6.1数组访问 162
7.6.6.2索引器访问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 规范 中文版