Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Table of Contents 1 страница

Table of Contents 3 страница | Table of Contents 4 страница | Program structure | Types and variables | Classes and objects | Accessibility | Virtual, override, and abstract methods | Other function members | Line terminators | Unicode character escape sequences |


Читайте также:
  1. 1 страница
  2. 1 страница
  3. 1 страница
  4. 1 страница
  5. 1 страница
  6. 1 страница
  7. 1 страница

Language Specification

Version 4.0


Notice

© 1999-2010 Microsoft Corporation. All rights reserved.

Microsoft, Windows, Visual Basic, Visual C#, and Visual C++ are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries/regions.

Other product and company names mentioned herein may be the trademarks of their respective owners.


Table of Contents

1. Introduction.......................................................................................................................................... 1

1.1 Hello world....................................................................................................................................... 1

1.2 Program structure.............................................................................................................................. 2

1.3 Types and variables.......................................................................................................................... 4

1.4 Expressions....................................................................................................................................... 6

1.5 Statements......................................................................................................................................... 8

1.6 Classes and objects......................................................................................................................... 12

1.6.1 Members.................................................................................................................................. 12

1.6.2 Accessibility............................................................................................................................. 13

1.6.3 Type parameters....................................................................................................................... 13

1.6.4 Base classes.............................................................................................................................. 14

1.6.5 Fields........................................................................................................................................ 14

1.6.6 Methods................................................................................................................................... 15

1.6.6.1 Parameters.......................................................................................................................... 15

1.6.6.2 Method body and local variables....................................................................................... 16

1.6.6.3 Static and instance methods............................................................................................... 17

1.6.6.4 Virtual, override, and abstract methods.............................................................................. 18

1.6.6.5 Method overloading........................................................................................................... 20

1.6.7 Other function members........................................................................................................... 21

1.6.7.1 Constructors....................................................................................................................... 22

1.6.7.2 Properties........................................................................................................................... 23

1.6.7.3 Indexers............................................................................................................................. 23

1.6.7.4 Events................................................................................................................................ 24

1.6.7.5 Operators........................................................................................................................... 24

1.6.7.6 Destructors......................................................................................................................... 25

1.7 Structs............................................................................................................................................. 25

1.8 Arrays............................................................................................................................................. 26

1.9 Interfaces........................................................................................................................................ 27

1.10 Enums........................................................................................................................................... 29

1.11 Delegates...................................................................................................................................... 30

1.12 Attributes...................................................................................................................................... 31

2. Lexical structure................................................................................................................................. 33

2.1 Programs......................................................................................................................................... 33

2.2 Grammars....................................................................................................................................... 33

2.2.1 Grammar notation.................................................................................................................... 33

2.2.2 Lexical grammar....................................................................................................................... 34

2.2.3 Syntactic grammar.................................................................................................................... 34

2.3 Lexical analysis.............................................................................................................................. 34

2.3.1 Line terminators....................................................................................................................... 35

2.3.2 Comments................................................................................................................................ 35

2.3.3 White space.............................................................................................................................. 37

2.4 Tokens............................................................................................................................................ 37

2.4.1 Unicode character escape sequences........................................................................................ 37

2.4.2 Identifiers................................................................................................................................. 38

2.4.3 Keywords................................................................................................................................. 39

2.4.4 Literals..................................................................................................................................... 40

2.4.4.1 Boolean literals.................................................................................................................. 40

2.4.4.2 Integer literals..................................................................................................................... 40

2.4.4.3 Real literals........................................................................................................................ 41

2.4.4.4 Character literals................................................................................................................ 42

2.4.4.5 String literals...................................................................................................................... 43

2.4.4.6 The null literal.................................................................................................................... 45

2.4.5 Operators and punctuators........................................................................................................ 45

2.5 Pre-processing directives................................................................................................................. 45

2.5.1 Conditional compilation symbols............................................................................................. 47

2.5.2 Pre-processing expressions....................................................................................................... 47

2.5.3 Declaration directives............................................................................................................... 48

2.5.4 Conditional compilation directives........................................................................................... 49

2.5.5 Diagnostic directives................................................................................................................ 51

2.5.6 Region directives...................................................................................................................... 52

2.5.7 Line directives.......................................................................................................................... 52

2.5.8 Pragma directives..................................................................................................................... 53

2.5.8.1 Pragma warning.................................................................................................................. 53

3. Basic concepts..................................................................................................................................... 55

3.1 Application Startup......................................................................................................................... 55

3.2 Application termination.................................................................................................................. 56

3.3 Declarations.................................................................................................................................... 56

3.4 Members......................................................................................................................................... 58

3.4.1 Namespace members................................................................................................................ 58

3.4.2 Struct members......................................................................................................................... 59

3.4.3 Enumeration members.............................................................................................................. 59

3.4.4 Class members......................................................................................................................... 59

3.4.5 Interface members.................................................................................................................... 60

3.4.6 Array members......................................................................................................................... 60

3.4.7 Delegate members.................................................................................................................... 60

3.5 Member access............................................................................................................................... 60

3.5.1 Declared accessibility............................................................................................................... 60

3.5.2 Accessibility domains............................................................................................................... 61

3.5.3 Protected access for instance members..................................................................................... 63

3.5.4 Accessibility constraints........................................................................................................... 64

3.6 Signatures and overloading............................................................................................................. 65

3.7 Scopes............................................................................................................................................ 66

3.7.1 Name hiding............................................................................................................................. 69

3.7.1.1 Hiding through nesting....................................................................................................... 69

3.7.1.2 Hiding through inheritance................................................................................................. 70

3.8 Namespace and type names............................................................................................................ 71

3.8.1 Fully qualified names............................................................................................................... 73

3.9 Automatic memory management.................................................................................................... 73

3.10 Execution order............................................................................................................................ 76

4. Types................................................................................................................................................... 77

4.1 Value types..................................................................................................................................... 77

4.1.1 The System.ValueType type..................................................................................................... 78

4.1.2 Default constructors................................................................................................................. 78

4.1.3 Struct types............................................................................................................................... 79

4.1.4 Simple types............................................................................................................................. 79

4.1.5 Integral types............................................................................................................................ 80

4.1.6 Floating point types.................................................................................................................. 81

4.1.7 The decimal type...................................................................................................................... 82

4.1.8 The bool type........................................................................................................................... 83

4.1.9 Enumeration types.................................................................................................................... 83

4.1.10 Nullable types........................................................................................................................ 83

4.2 Reference types.............................................................................................................................. 83

4.2.1 Class types............................................................................................................................... 84

4.2.2 The object type......................................................................................................................... 85

4.2.3 The dynamic type..................................................................................................................... 85

4.2.4 The string type.......................................................................................................................... 85

4.2.5 Interface types.......................................................................................................................... 85

4.2.6 Array types............................................................................................................................... 85

4.2.7 Delegate types.......................................................................................................................... 85

4.3 Boxing and unboxing...................................................................................................................... 86

4.3.1 Boxing conversions.................................................................................................................. 86

4.3.2 Unboxing conversions.............................................................................................................. 87

4.4 Constructed types........................................................................................................................... 88

4.4.1 Type arguments........................................................................................................................ 89

4.4.2 Open and closed types............................................................................................................. 89

4.4.3 Bound and unbound types....................................................................................................... 89

4.4.4 Satisfying constraints................................................................................................................ 89

4.5 Type parameters............................................................................................................................. 90

4.6 Expression tree types...................................................................................................................... 91

4.7 The dynamic type........................................................................................................................... 92

5. Variables............................................................................................................................................. 93

5.1 Variable categories.......................................................................................................................... 93

5.1.1 Static variables......................................................................................................................... 93

5.1.2 Instance variables..................................................................................................................... 93

5.1.2.1 Instance variables in classes............................................................................................... 93

5.1.2.2 Instance variables in structs................................................................................................ 94

5.1.3 Array elements......................................................................................................................... 94

5.1.4 Value parameters...................................................................................................................... 94

5.1.5 Reference parameters............................................................................................................... 94

5.1.6 Output parameters.................................................................................................................... 94

5.1.7 Local variables......................................................................................................................... 95

5.2 Default values................................................................................................................................. 96

5.3 Definite assignment........................................................................................................................ 96

5.3.1 Initially assigned variables........................................................................................................ 97

5.3.2 Initially unassigned variables.................................................................................................... 97

5.3.3 Precise rules for determining definite assignment..................................................................... 97

5.3.3.1 General rules for statements............................................................................................... 98

5.3.3.2 Block statements, checked, and unchecked statements...................................................... 98

5.3.3.3 Expression statements........................................................................................................ 98

5.3.3.4 Declaration statements....................................................................................................... 98

5.3.3.5 If statements....................................................................................................................... 98

5.3.3.6 Switch statements............................................................................................................... 99

5.3.3.7 While statements................................................................................................................ 99

5.3.3.8 Do statements..................................................................................................................... 99

5.3.3.9 For statements.................................................................................................................. 100

5.3.3.10 Break, continue, and goto statements............................................................................. 100

5.3.3.11 Throw statements........................................................................................................... 100

5.3.3.12 Return statements........................................................................................................... 100

5.3.3.13 Try-catch statements...................................................................................................... 100

5.3.3.14 Try-finally statements.................................................................................................... 101

5.3.3.15 Try-catch-finally statements........................................................................................... 101

5.3.3.16 Foreach statements......................................................................................................... 102

5.3.3.17 Using statements............................................................................................................ 102

5.3.3.18 Lock statements............................................................................................................. 102

5.3.3.19 Yield statements............................................................................................................. 103

5.3.3.20 General rules for simple expressions.............................................................................. 103

5.3.3.21 General rules for expressions with embedded expressions............................................. 103

5.3.3.22 Invocation expressions and object creation expressions................................................. 103

5.3.3.23 Simple assignment expressions...................................................................................... 104

5.3.3.24 && expressions............................................................................................................. 104

5.3.3.25 || expressions.................................................................................................................. 105

5.3.3.26! expressions.................................................................................................................. 106

5.3.3.27?? expressions................................................................................................................ 106

5.3.3.28?: expressions................................................................................................................. 106

5.3.3.29 Anonymous functions.................................................................................................... 107

5.4 Variable references....................................................................................................................... 107

5.5 Atomicity of variable references................................................................................................... 107

6. Conversions...................................................................................................................................... 109

6.1 Implicit conversions...................................................................................................................... 109

6.1.1 Identity conversion................................................................................................................. 109

6.1.2 Implicit numeric conversions................................................................................................. 110

6.1.3 Implicit enumeration conversions........................................................................................... 110

6.1.4 Implicit nullable conversions.................................................................................................. 110

6.1.5 Null literal conversions........................................................................................................... 111

6.1.6 Implicit reference conversions............................................................................................... 111

6.1.7 Boxing conversions................................................................................................................ 111

6.1.8 Implicit dynamic conversions................................................................................................. 112

6.1.9 Implicit constant expression conversions............................................................................... 112

6.1.10 Implicit conversions involving type parameters.................................................................... 112

6.1.11 User-defined implicit conversions........................................................................................ 113

6.1.12 Anonymous function conversions and method group conversions...................................... 113

6.2 Explicit conversions...................................................................................................................... 113

6.2.1 Explicit numeric conversions................................................................................................. 114

6.2.2 Explicit enumeration conversions........................................................................................... 115

6.2.3 Explicit nullable conversions.................................................................................................. 115

6.2.4 Explicit reference conversions............................................................................................... 116

6.2.5 Unboxing conversions............................................................................................................ 117

6.2.6 Explicit dynamic conversions................................................................................................. 117

6.2.7 Explicit conversions involving type parameters...................................................................... 118

6.2.8 User-defined explicit conversions.......................................................................................... 119

6.3 Standard conversions.................................................................................................................... 119

6.3.1 Standard implicit conversions................................................................................................. 119

6.3.2 Standard explicit conversions................................................................................................. 119

6.4 User-defined conversions............................................................................................................. 119

6.4.1 Permitted user-defined conversions........................................................................................ 119

6.4.2 Lifted conversion operators.................................................................................................... 120


Дата добавления: 2015-11-16; просмотров: 43 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
August, 2013, Crimea, Ukraine| Table of Contents 2 страница

mybiblioteka.su - 2015-2024 год. (0.021 сек.)