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

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

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; просмотров: 412. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

ТЕОРИЯ ЗАЩИТНЫХ МЕХАНИЗМОВ ЛИЧНОСТИ В современной психологической литературе встречаются различные термины, касающиеся феноменов защиты...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

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