没有合适的资源?快使用搜索试试~ 我知道了~
首页C# 5.0编程语言规范详解
C# 5.0编程语言规范详解
需积分: 9 2 下载量 194 浏览量
更新于2024-07-18
收藏 5.46MB PDF 举报
"C# 语言规范 5.0" 是一本详细描述C#编程语言的规范文档,旨在定义C#程序的形式和含义。该规范涵盖了C#程序的表示形式、语法约束、语义规则以及符合标准的C#实现所施加的限制。
此文档是ECMA-334的第五版,更新至2017年12月,由Ecma International发布。它包含了C#语言的多个方面,从基本的词汇结构到复杂的语法规则。以下是其中部分内容的详解:
1. **词汇结构**:这部分规定了C#程序的基本构成,包括程序的组织方式和使用的文法。7.1节介绍程序,7.2节详细讨论文法,包括一般性规则、文法表示法、词法文法和句法文法,以及可能存在的文法歧义。
2. **词法分析**:7.3节详细介绍了词法分析过程,包括对行终止符、注释、空白字符和标记的处理。这些元素对于代码的可读性和解析至关重要。
3. **标记(Tokens)**:7.4节深入到程序中的具体符号,如标识符、关键字、字面量、运算符和标点符号。其中,标识符用于变量、类等命名,关键字是具有特殊含义的语言保留字,字面量包括布尔值、整数、实数、字符和字符串,而运算符和标点符号则是构成表达式和控制流程的基础。
4. **字面量**:7.4.5节专门讨论字面量,包括不同类型的字面量的表示方法,例如布尔值(如`true`、`false`)、整数(如`123`)、实数(如`3.14`)、字符(如`'a'`)和字符串(如`"Hello"`)。此外,还包括了对Unicode字符转义序列的支持,使得可以使用特殊字符和国际字符。
5. **其他**:文档还涵盖了规范性参考、术语和定义、缩写和简称,以及对C#语言的一般描述,这些都是理解C#语言规范的基础。
"C# 语言规范 5.0"是开发者、编译器开发者和语言爱好者的重要参考资料,它定义了C#的精确语义,帮助读者理解并正确使用C#语言的各个部分。对于想要深入理解C#工作原理或进行语言扩展的人来说,这是不可或缺的文献。随着C#版本的更新,如C# 7.0,这些规范也会随之进化,引入新的特性,如async/await、pattern matching和local functions等。因此,熟悉并掌握这些规范对于任何C#程序员来说都极其重要。
ECMA-334
xiv
16.2.5 Struct body ................................................................................................................................. 344
16.3 Struct members ................................................................................................................................. 344
16.4 Class and struct differences .............................................................................................................. 344
16.4.1 General ....................................................................................................................................... 344
16.4.2 Value semantics ......................................................................................................................... 345
16.4.3 Inheritance ................................................................................................................................. 346
16.4.4 Assignment ................................................................................................................................. 346
16.4.5 Default values............................................................................................................................. 346
16.4.6 Boxing and unboxing .................................................................................................................. 347
16.4.7 Meaning of this .......................................................................................................................... 347
16.4.8 Field initializers........................................................................................................................... 348
16.4.9 Constructors ............................................................................................................................... 349
16.4.10 Static constructors ................................................................................................................... 349
16.4.11 Automatically implemented properties ................................................................................... 350
17. Arrays .......................................................................................................................................... 351
17.1 General .............................................................................................................................................. 351
17.2 Array types ........................................................................................................................................ 351
17.2.1 General ....................................................................................................................................... 351
17.2.2 The System.Array type ............................................................................................................... 351
17.2.3 Arrays and the generic collection interfaces ............................................................................. 352
17.3 Array creation .................................................................................................................................... 353
17.4 Array element access ........................................................................................................................ 353
17.5 Array members .................................................................................................................................. 353
17.6 Array covariance ................................................................................................................................ 353
17.7 Array initializers ................................................................................................................................. 354
18. Interfaces ..................................................................................................................................... 357
18.1 General .............................................................................................................................................. 357
18.2 Interface declarations ....................................................................................................................... 357
18.2.1 General ....................................................................................................................................... 357
18.2.2 Interface modifiers ..................................................................................................................... 357
18.2.3 Variant type parameter lists ...................................................................................................... 358
18.2.3.1 General ................................................................................................................................ 358
18.2.3.2 Variance safety .................................................................................................................... 358
18.2.3.3 Variance conversion ............................................................................................................ 359
18.2.4 Base interfaces ........................................................................................................................... 359
18.3 Interface body ................................................................................................................................... 360
18.4 Interface members ............................................................................................................................ 360
18.4.1 General ....................................................................................................................................... 360
18.4.2 Interface methods ...................................................................................................................... 361
18.4.3 Interface properties ................................................................................................................... 362
18.4.4 Interface events ......................................................................................................................... 362
18.4.5 Interface indexers ...................................................................................................................... 362
18.4.6 Interface member access ........................................................................................................... 363
18.5 Qualified interface member names .................................................................................................. 364
18.6 Interface implementations ................................................................................................................ 365
18.6.1 General ....................................................................................................................................... 365
18.6.2 Explicit interface member implementations ............................................................................. 366
18.6.3 Uniqueness of implemented interfaces ..................................................................................... 368
18.6.4 Implementation of generic methods ......................................................................................... 369
18.6.5 Interface mapping ...................................................................................................................... 370
Table of Contents
xv
18.6.6 Interface implementation inheritance ....................................................................................... 372
18.6.7 Interface re-implementation ..................................................................................................... 374
18.6.8 Abstract classes and interfaces .................................................................................................. 375
19. Enums .......................................................................................................................................... 377
19.1 General .............................................................................................................................................. 377
19.2 Enum declarations ............................................................................................................................. 377
19.3 Enum modifiers ................................................................................................................................. 377
19.4 Enum members ................................................................................................................................. 378
19.5 The System.Enum type ...................................................................................................................... 380
19.6 Enum values and operations ............................................................................................................. 380
20. Delegates ..................................................................................................................................... 381
20.1 General .............................................................................................................................................. 381
20.2 Delegate declarations........................................................................................................................ 381
20.3 Delegate members ............................................................................................................................ 382
20.4 Delegate compatibility ...................................................................................................................... 382
20.5 Delegate instantiation ....................................................................................................................... 383
20.6 Delegate invocation .......................................................................................................................... 385
21. Exceptions ................................................................................................................................... 389
21.1 General .............................................................................................................................................. 389
21.2 Causes of exceptions ......................................................................................................................... 389
21.3 The System.Exception class ............................................................................................................... 389
21.4 How exceptions are handled ............................................................................................................. 389
21.5 Common exception classes ............................................................................................................... 390
22. Attributes .................................................................................................................................... 391
22.1 General .............................................................................................................................................. 391
22.2 Attribute classes ................................................................................................................................ 391
22.2.1 General ....................................................................................................................................... 391
22.2.2 Attribute usage .......................................................................................................................... 391
22.2.3 Positional and named parameters ............................................................................................. 393
22.2.4 Attribute parameter types ......................................................................................................... 393
22.3 Attribute specification ....................................................................................................................... 394
22.4 Attribute instances ............................................................................................................................ 399
22.4.1 General ....................................................................................................................................... 399
22.4.2 Compilation of an attribute ....................................................................................................... 399
22.4.3 Run-time retrieval of an attribute instance ............................................................................... 400
22.5 Reserved attributes ........................................................................................................................... 401
22.5.1 General ....................................................................................................................................... 401
22.5.2 The AttributeUsage attribute ..................................................................................................... 401
22.5.3 The Conditional attribute ........................................................................................................... 401
22.5.3.1 General ................................................................................................................................ 401
22.5.3.2 Conditional methods ........................................................................................................... 401
22.5.3.3 Conditional attribute classes ............................................................................................... 404
22.5.4 The Obsolete attribute ............................................................................................................... 405
22.5.5 Caller-info attributes .................................................................................................................. 405
22.5.5.1 General ................................................................................................................................ 405
22.5.5.2 The CallerLineNumber attribute ......................................................................................... 406
22.5.5.3 The CallerFilePath attribute ................................................................................................ 407
22.5.5.4 The CallerMemberName attribute ..................................................................................... 407
22.6 Attributes for interoperation ............................................................................................................ 408
ECMA-334
xvi
23. Unsafe code ................................................................................................................................. 409
23.1 General .............................................................................................................................................. 409
23.2 Unsafe contexts ................................................................................................................................. 409
23.3 Pointer types ..................................................................................................................................... 411
23.4 Fixed and moveable variables ........................................................................................................... 414
23.5 Pointer conversions ........................................................................................................................... 415
23.5.1 General ....................................................................................................................................... 415
23.5.2 Pointer arrays ............................................................................................................................. 416
23.6 Pointers in expressions ...................................................................................................................... 416
23.6.1 General ....................................................................................................................................... 416
23.6.2 Pointer indirection ..................................................................................................................... 417
23.6.3 Pointer member access .............................................................................................................. 417
23.6.4 Pointer element access .............................................................................................................. 418
23.6.5 The address-of operator ............................................................................................................ 419
23.6.6 Pointer increment and decrement ............................................................................................ 420
23.6.7 Pointer arithmetic ...................................................................................................................... 420
23.6.8 Pointer comparison .................................................................................................................... 421
23.6.9 The sizeof operator .................................................................................................................... 421
23.7 The fixed statement .......................................................................................................................... 421
23.8 Fixed-size buffers............................................................................................................................... 424
23.8.1 General ....................................................................................................................................... 424
23.8.2 Fixed-size buffer declarations .................................................................................................... 424
23.8.3 Fixed-size buffers in expressions ................................................................................................ 426
23.8.4 Definite assignment checking .................................................................................................... 426
23.9 Stack allocation ................................................................................................................................. 427
Annex A. Grammar ............................................................................................................................ 429
A.1 General ................................................................................................................................................ 429
A.2 Lexical grammar .................................................................................................................................. 429
A.2.1 Comments .................................................................................................................................... 430
A.2.2 Tokens .......................................................................................................................................... 430
A.2.3 Keywords ..................................................................................................................................... 432
A.2.4 Operators and punctuators ......................................................................................................... 434
A.2.5 Pre-processing directives ............................................................................................................. 434
A.3 Syntactic grammar .............................................................................................................................. 436
A.3.1 Basic concepts .............................................................................................................................. 436
A.3.2 Types ............................................................................................................................................ 436
A.3.3 Variables ...................................................................................................................................... 437
A.3.4 Expressions .................................................................................................................................. 437
A.3.5 Statements ................................................................................................................................... 443
A.3.6 Namespaces ................................................................................................................................. 447
A.3.7 Classes .......................................................................................................................................... 448
A.3.8 Structs .......................................................................................................................................... 454
A.3.9 Arrays ........................................................................................................................................... 454
A.3.10 Interfaces ................................................................................................................................... 454
A.3.11 Enums ........................................................................................................................................ 455
A.3.12 Delegates ................................................................................................................................... 456
A.3.13 Attributes ................................................................................................................................... 456
A.4 Grammar extensions for unsafe code ................................................................................................. 457
Annex B. Portability issues ................................................................................................................. 461
B.1 General ................................................................................................................................................ 461
Table of Contents
xvii
B.2 Undefined behavior ............................................................................................................................ 461
B.3 Implementation-defined behavior ...................................................................................................... 461
B.4 Unspecified behavior .......................................................................................................................... 462
B.5 Other Issues......................................................................................................................................... 462
Annex C. Standard library .................................................................................................................. 463
C.1 General ................................................................................................................................................ 463
C.2 Standard Library Types defined in ISO/IEC 23271............................................................................... 463
C.3 Standard Library Types not defined in ISO/IEC 23271:2012 ............................................................... 472
Annex D. Documentation comments .................................................................................................. 475
D.1 General ................................................................................................................................................ 475
D.2 Introduction ........................................................................................................................................ 475
D.3 Recommended tags ............................................................................................................................ 476
D.3.1 General ........................................................................................................................................ 476
D.3.2 <c>................................................................................................................................................ 477
D.3.3 <code> ......................................................................................................................................... 477
D.3.4 <example> ................................................................................................................................... 478
D.3.5 <exception> ................................................................................................................................. 478
D.3.6 <include> ..................................................................................................................................... 478
D.3.7 <list> ............................................................................................................................................ 479
D.3.8 <para> .......................................................................................................................................... 480
D.3.9 <param> ....................................................................................................................................... 480
D.3.10 <paramref> ................................................................................................................................ 481
D.3.11 <permission> ............................................................................................................................. 481
D.3.12 <remarks> .................................................................................................................................. 482
D.3.13 <returns> ................................................................................................................................... 482
D.3.14 <see> .......................................................................................................................................... 482
D.3.15 <seealso> ................................................................................................................................... 483
D.3.16 <summary> ................................................................................................................................ 483
D.3.17 <typeparam> ............................................................................................................................. 483
D.3.18 <typeparamref> ......................................................................................................................... 484
D.3.19 <value> ...................................................................................................................................... 484
D.4 Processing the documentation file ..................................................................................................... 484
D.4.1 General ........................................................................................................................................ 484
D.4.2 ID string format ............................................................................................................................ 484
D.4.3 ID string examples ....................................................................................................................... 486
D.5 An example ......................................................................................................................................... 489
D.5.1 C# source code ............................................................................................................................. 489
D.5.2 Resulting XML .............................................................................................................................. 491
Annex E. Bibliography ........................................................................................................................ 494
剩余515页未读,继续阅读
2016-07-29 上传
2018-09-19 上传
2023-06-01 上传
2023-07-16 上传
2023-05-20 上传
2023-03-16 上传
2023-06-03 上传
2023-05-18 上传
qq_36805414
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JDK 17 Linux版本压缩包解压与安装指南
- C++/Qt飞行模拟器教员控制台系统源码发布
- TensorFlow深度学习实践:CNN在MNIST数据集上的应用
- 鸿蒙驱动HCIA资料整理-培训教材与开发者指南
- 凯撒Java版SaaS OA协同办公软件v2.0特性解析
- AutoCAD二次开发中文指南下载 - C#编程深入解析
- C语言冒泡排序算法实现详解
- Pointofix截屏:轻松实现高效截图体验
- Matlab实现SVM数据分类与预测教程
- 基于JSP+SQL的网站流量统计管理系统设计与实现
- C语言实现删除字符中重复项的方法与技巧
- e-sqlcipher.dll动态链接库的作用与应用
- 浙江工业大学自考网站开发与继续教育官网模板设计
- STM32 103C8T6 OLED 显示程序实现指南
- 高效压缩技术:删除重复字符压缩包
- JSP+SQL智能交通管理系统:违章处理与交通效率提升
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功