Студопедия Главная Случайная страница Обратная связь

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

Table of Contents 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







Дата добавления: 2015-09-07; просмотров: 434. Нарушение авторских прав; Мы поможем в написании вашей работы!




Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия