您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 微软C#3.0 Specification
  所属分类: Access
  开发工具:
  文件大小: 2mb
  下载次数: 0
  上传时间: 2009-09-24
  提 供 者: tims*****
 详细说明: 微软官方关于C#3.0的参考书,Doc版 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 40 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 42 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 59 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 74 3.10 Execution order 76 4. Types 79 4.1 Value types 79 4.1.1 The System.ValueType type 80 4.1.2 Default constructors 80 4.1.3 Struct types 81 4.1.4 Simple types 81 4.1.5 Integral types 82 4.1.6 Floating point types 83 4.1.7 The decimal type 84 4.1.8 The bool type 85 4.1.9 Enumeration types 85 4.1.10 Nullable types 85 4.2 Reference types 86 4.2.1 Class types 86 4.2.2 The object type 87 4.2.3 The string type 87 4.2.4 Interface types 87 4.2.5 Array types 87 4.2.6 Delegate types 87 4.3 Boxing and unboxing 88 4.3.1 Boxing conversions 88 4.3.2 Unboxing conversions 89 4.4 Constructed types 90 4.4.1 Type arguments 91 4.4.2 Open and closed types 91 4.4.3 Bound and unbound types 91 4.4.4 Satisfying constraints 91 4.5 Type parameters 92 4.6 Expression tree types 93 5. Variables 95 5.1 Variable categories 95 5.1.1 Static variables 95 5.1.2 Instance variables 95 5.1.2.1 Instance variables in classes 96 5.1.2.2 Instance variables in structs 96 5.1.3 Array elements 96 5.1.4 Value parameters 96 5.1.5 Reference parameters 96 5.1.6 Output parameters 97 5.1.7 Local variables 97 5.2 Default values 98 5.3 Definite assignment 98 5.3.1 Initially assigned variables 99 5.3.2 Initially unassigned variables 99 5.3.3 Precise rules for determining definite assignment 99 5.3.3.1 General rules for statements 100 5.3.3.2 Block statements, checked, and unchecked statements 100 5.3.3.3 Expression statements 100 5.3.3.4 Declaration statements 101 5.3.3.5 If statements 101 5.3.3.6 Switch statements 101 5.3.3.7 While statements 101 5.3.3.8 Do statements 102 5.3.3.9 For statements 102 5.3.3.10 Break, continue, and goto statements 102 5.3.3.11 Throw statements 102 5.3.3.12 Return statements 102 5.3.3.13 Try-catch statements 103 5.3.3.14 Try-finally statements 103 5.3.3.15 Try-catch-finally statements 103 5.3.3.16 Foreach statements 104 5.3.3.17 Using statements 104 5.3.3.18 Lock statements 105 5.3.3.19 Yield statements 105 5.3.3.20 General rules for simple expressions 105 5.3.3.21 General rules for expressions with embedded expressions 105 5.3.3.22 Invocation expressions and object creation expressions 106 5.3.3.23 Simple assignment expressions 106 5.3.3.24 && expressions 106 5.3.3.25 || expressions 107 5.3.3.26 ! expressions 108 5.3.3.27 ?? expressions 108 5.3.3.28 ?: expressions 109 5.3.3.29 Anonymous functions 109 5.4 Variable references 110 5.5 Atomicity of variable references 110 6. Conversions 111 6.1 Implicit conversions 111 6.1.1 Identity conversion 111 6.1.2 Implicit numeric conversions 111 6.1.3 Implicit enumeration conversions 112 6.1.4 Implicit nullable conversions 112 6.1.5 Null literal conversions 112 6.1.6 Implicit reference conversions 113 6.1.7 Boxing conversions 113 6.1.8 Implicit constant expression conversions 114 6.1.9 Implicit conversions involving type parameters 114 6.1.10 User-defined implicit conversions 114 6.1.11 Anonymous function conversions and method group conversions 114 6.2 Explicit conversions 114 6.2.1 Explicit numeric conversions 115 6.2.2 Explicit enumeration conversions 116 6.2.3 Explicit nullable conversions 117 6.2.4 Explicit reference conversions 117 6.2.5 Unboxing conversions 118 6.2.6 Explicit conversions involving type parameters 118 6.2.7 User-defined explicit conversions 119 6.3 Standard conversions 119 6.3.1 Standard implicit conversions 119 6.3.2 Standard explicit conversions 120 6.4 User-defined conversions 120 6.4.1 Permitted user-defined conversions 120 6.4.2 Lifted conversion operators 120 6.4.3 Evaluation of user-defined conversions 120 6.4.4 User-defined implicit conversions 121 6.4.5 User-defined explicit conversions 122 6.5 Anonymous function conversions 123 6.5.1 Evaluation of anonymous function conversions to delegate types 124 6.5.2 Evaluation of anonymous function conversions to expression tree types 125 6.5.3 Implementation example 125 6.6 Method group conversions 127 7. Expressions 131 7.1 Expression classifications 131 7.1.1 Values of expressions 132 7.2 Operators 132 7.2.1 Operator precedence and associativity 132 7.2.2 Operator overloading 133 7.2.3 Unary operator overload resolution 135 7.2.4 Binary operator overload resolution 135 7.2.5 Candidate user-defined operators 135 7.2.6 Numeric promotions 136 7.2.6.1 Unary numeric promotions 136 7.2.6.2 Binary numeric promotions 136 7.2.7 Lifted operators 137 7.3 Member lookup 138 7.3.1 Base types 139 7.4 Function members 139 7.4.1 Argument lists 142 7.4.2 Type inference 144 7.4.2.1 The first phase 145 7.4.2.2 The second phase 145 7.4.2.3 Input types 145 7.4.2.4 Output types 145 7.4.2.5 Dependence 145 7.4.2.6 Output type inferences 145 7.4.2.7 Explicit parameter type inferences 146 7.4.2.8 Exact inferences 146 7.4.2.9 Lower-bound inferences 146 7.4.2.10 Fixing 146 7.4.2.11 Inferred return type 147 7.4.2.12 Type inference for conversion of method groups 148 7.4.2.13 Finding the best common type of a set of expressions 148 7.4.3 Overload resolution 148 7.4.3.1 Applicable function member 149 7.4.3.2 Better function member 149 7.4.3.3 Better conversion from expression 150 7.4.3.4 Better conversion from type 151 7.4.3.5 Overloading in generic classes 151 7.4.4 Function member invocation 152 7.4.4.1 Invocations on boxed instances 153 7.5 Primary expressions 153 7.5.1 Literals 154 7.5.2 Simple names 154 7.5.2.1 Invariant meaning in blocks 156 7.5.3 Parenthesized expressions 156 7.5.4 Member access 157 7.5.4.1 Identical simple names and type names 158 7.5.4.2 Grammar ambiguities 159 7.5.5 Invocation expressions 160 7.5.5.1 Method invocations 160 7.5.5.2 Extension method invocations 161 7.5.5.3 Delegate invocations 163 7.5.6 Element access 164 7.5.6.1 Array access 164 7.5.6.2 Indexer access 165 7.5.7 This access 165 7.5.8 Base access 166 7.5.9 Postfix increment and decrement operators 166 7.5.10 The new operator 167 7.5.10.1 Object creation expressions 168 7.5.10.2 Object initializers 169 7.5.10.3 Collection initializers 171 7.5.10.4 Array creation expressions 172 7.5.10.5 Delegate creation expressions 174 7.5.10.6 Anonymous object creation expressions 175 7.5.11 The typeof operator 177 7.5.12 The checked and unchecked operators 178 7.5.13 Default value expressions 180 7.5.14 Anonymous method expressions 181 7.6 Unary operators 181 7.6.1 Unary plus operator 181 7.6.2 Unary minus operator 181 7.6.3 Logical negation operator 182 7.6.4 Bitwise complement operator 182 7.6.5 Prefix increment and decrement operators 183 7.6.6 Cast expressions 183 7.7 Arithmetic operators 184 7.7.1 Multiplication operator 184 7.7.2 Division operator 185 7.7.3 Remainder operator 186 7.7.4 Addition operator 187 7.7.5 Subtraction operator 189 7.8 Shift operators 191 7.9 Relational and type-testing operators 192 7.9.1 Integer comparison operators 192 7.9.2 Floating-point comparison operators 193 7.9.3 Decimal comparison operators 194 7.9.4 Boolean equality operators 194 7.9.5 Enumeration comparison operators 194 7.9.6 Reference type equality operators 194 7.9.7 String equality operators 196 7.9.8 Delegate equality operators 196 7.9.9 Equality operators and null 197 7.9.10 The is operator 197 7.9.11 The as operator 198 7.10 Logical operators 198 7.10.1 Integer logical operators 199 7.10.2 Enumeration logical operators 199 7.10.3 Boolean logical operators 199 7.10.4 Nullable boolean logical operators 199 7.11 Conditional logical operators 200 7.11.1 Boolean conditional logical operators 201 7.11.2 User-defined conditional logical operators 201 7.12 The null coalescing operator 201 7.13 Conditional operator 202 7.14 Anonymous function expressions 203 7.14.1 Anonymous function signatures 205 7.14.2 Anonymous function bodies 205 7.14.3 Overload resolution 206 7.14.4 Outer variables 206 7.14.4.1 Captured outer variables 206 7.14.4.2 Instantiation of local variables 207 7.14.5 Evaluation of anonymous function expressions 209 7.15 Query expressions 209 7.15.1 Ambiguities in query expressions 211 7.15.2 Query expression translation 211 7.15.2.1 Select and groupby clauses with continuations 211 7.15.2.2 Explicit range variable types 212 7.15.2.3 Degenerate query expressions 212 7.15.2.4 From, let, where, join and orderby clauses 213 7.15.2.5 Select clauses 216 7.15.2.6 Groupby clauses 216 7.15.2.7 Transparent identifiers 217 7.15.3 The query expression pattern 218 7.16 Assignment operators 219 7.16.1 Simple assignment 220 7.16.2 Compound assignment 222 7.16.3 Event assignment 223 7.17 Expression 223 7.18 Constant expressions 223 7.19 Boolean expressions 225 8. Statements 227 8.1 End points and reachability 227 8.2 Blocks 229 8.2.1 Statement lists 229 8.3 The empty statement 230 8.4 Labeled statements 230 8.5 Declaration statements 231 8.5.1 Local variable declarations 231 8.5.2 Local constant declarations 232 8.6 Expression statements 233 8.7 Selection statements 233 8.7.1 The if statement 233 8.7.2 The switch statement 234 8.8 Iteration statements 237 8.8.1 The while statement 238 8.8.2 The do statement 238 8.8.3 The for statement 239 8.8.4 The foreach statement 240 8.9 Jump statements 242 8.9.1 The break statement 243 8.9.2 The continue statement 244 8.9.3 The goto statement 244 8.9.4 The return statement 245 8.9.5 The throw statement 246 8.10 The try statement 247 8.11 The checked and unchecked statements 250 8.12 The lock statement 250 8.13 The using statement 251 8.14 The yield statement 253 9. Namespaces 255 9.1 Compilation units 255 9.2 Namespace declarations 255 9.3 Extern aliases 257 9.4 Using directives 257 9.4.1 Using alias directives 258 9.4.2 Using namespace directives 260 9.5 Namespace members 262 9.6 Type declarations 262 9.7 Namespace alias qualifiers 263 9.7.1 Uniqueness of aliases 264 10. Classes 265 10.1 Class declarations 265 10.1.1 Class modifiers 265 10.1.1.1 Abstract classes 266 10.1.1.2 Sealed classes 266 10.1.1.3 Static classes 266 10.1.2 Partial modifier 267 10.1.3 Type parameters 267 10.1.4 Class base specification 268 10.1.4.1 Base classes 268 10.1.4.2 Interface implementations 269 10.1.5 Type parameter constraints 270 10.1.6 Class body 274 10.2 Partial types 274 10.2.1 Attributes 274 10.2.2 Modifiers 274 10.2.3 Type parameters and constraints 275 10.2.4 Base class 275 10.2.5 Base interfaces 275 10.2.6 Members 276 10.2.7 Partial methods 276 10.2.8 Name binding 279 10.3 Class members 279 10.3.1 The instance type 281 10.3.2 Members of constructed types 281 10.3.3 Inheritance 282 10.3.4 The new modifier 283 10.3.5 Access modifiers 283 10.3.6 Constituent types 283 10.3.7 Static and instance members 283 10.3.8 Nested types 284 10.3.8.1 Fully qualified name 285 10.3.8.2 Declared accessibility 285 10.3.8.3 Hiding 285 10.3.8.4 this access 286 10.3.8.5 Access to private and protected members of the containing type 287 10.3.8.6 Nested types in generic classes 288 10.3.9 Reserved member names 288 10.3.9.1 Member names reserved for properties 289 10.3.9.2 Member names reserved for events 289 10.3.9.3 Member names reserved for indexers 289 10.3.9.4 Member names reserved for destructors 290 10.4 Constants 290 10.5 Fields 291 10.5.1 Static and instance fields 293 10.5.2 Readonly fields 293 10.5.2.1 Using static readonly fields for constants 294 10.5.2.2 Versioning of constants and static readonly fields 294 10.5.3 Volatile fields 295 10.5.4 Field initialization 296 10.5.5 Variable initializers 296 10.5.5.1 Static field initialization 297 10.5.5.2 Instance field initialization 298 10.6 Methods 299 10.6.1 Method parameters 300 10.6.1.1 Value parameters 301 10.6.1.2 Reference parameters 302 10.6.1.3 Output parameters 303 10.6.1.4 Parameter arrays 303 10.6.2 Static and instance methods 306 10.6.3 Virtual methods 306 10.6.4 Override methods 308 10.6.5 Sealed methods 310 10.6.6 Abstract methods 311 10.6.7 External methods 312 10.6.8 Partial methods 313 10.6.9 Extension methods 313 10.6.10 Method body 313 10.6.11 Method overloading 314 10.7 Properties 314 10.7.1 Static and instance properties 315 10.7.2 Accessors 316 10.7.3 Automatically implemented properties 320 10.7.4 Accessibility 321 10.7.5 Virtual, sealed, override, and abstract accessors 322 10.8 Events 324 10.8.1 Field-like events 326 10.8.2 Event accessors 327 10.8.3 Static and instance events 328 10.8.4 Virtual, sealed, override, and abstract accessors 329 10.9 Indexers 329 10.9.1 Indexer overloading 333 10.10 Operators 333 10.10.1 Unary operators 335 10.10.2 Binary operators 335 10.10.3 Conversion operators 336 10.11 Instance constructors 338 10.11.1 Constructor initializers 339 10.11.2 Instance variable initializers 340 10.11.3 Constructor execution 340 10.11.4 Default constructors 342 10.11.5 Private constructors 342 10.11.6 Optional instance constructor parameters 343 10.12 Static constructors 343 10.13 Destructors 345 10.14 Iterators 347 10.14.1 Enumerator interfaces 347 10.14.2 Enumerable interfaces 347 10.14.3 Yield type 347 10.14.4 Enumerator objects 347 10.14.4.1 The MoveNext method 348 10.14.4.2 The Current property 349 10.14.4.3 The Dispose method 349 10.14.5 Enumerable objects 349 10.14.5.1 The GetEnumerator method 350 10.14.6 Implementation example 350 11. Structs 357 11.1 Struct declarations 357 11.1.1 Struct modifiers 357 11.1.2 Partial modifier 358 11.1.3 Struct interfaces 358 11.1.4 Struct body 358 11.2 Struct members 358 11.3 Class and struct differences 358 11.3.1 Value semantics 359 11.3.2 Inheritance 360 11.3.3 Assignment 360 11.3.4 Default values 360 11.3.5 Boxing and unboxing 361 11.3.6 Meaning of this 362 11.3.7 Field initializers 363 11.3.8 Constructors 363 11.3.9 Destructors 364 11.3.10 Static constructors 364 11.4 Struct examples 364 11.4.1 Database integer type 364 11.4.2 Database boolean type 366 12. Arrays 369 12.1 Array types 369 12.1.1 The System.Array type 370 12.1.2 Arrays and the generic IList interface 370 12.2 Array creation 370 12.3 Array element access 371 12.4 Array members 371 12.5 Array covariance 371 12.6 Array initializers 371 13. Interfaces 375 13.1 Interface declarations 375 13.1.1 Interface modifiers 375 13.1.2 Partial modifier 375 13.1.3 Base interfaces 376 13.1.4 Interface body 376 13.2 Interface members 376 13.2.1 Interface methods 378 13.2.2 Interface properties 378 13.2.3 Interface events 378 13.2.4 Interface indexers 378 13.2.5 Interface member access 379 13.3 Fully qualified interface member names 380 13.4 Interface implementations 381 13.4.1 Explicit interface member implementations 382 13.4.2 Uniqueness of implemented interfaces 384 13.4.3 Implementation of generic methods 385 13.4.4 Interface mapping 385 13.4.5 Interface implementation inheritance 388 13.4.6 Interface re-implementation 389 13.4.7 Abstract classes and interfaces 391 14. Enums 393 14.1 Enum declarations 393 14.2 Enum modifiers 393 14.3 Enum members 394 14.4 The System.Enum type 396 14.5 Enum values and operations 396 15. Delegates 397 15.1 Delegate declarations 397 15.2 Delegate compatibility 399 15.3 Delegate instantiation 399 15.4 Delegate invocation 400 16. Exceptions 403 16.1 Causes of exceptions 403 16.2 The System.Exception class 403 16.3 How exceptions are handled 403 16.4 Common Exception Classes 404 17. Attributes 407 17.1 Attribute classes 407 17.1.1 Attribute usage 407 17.1.2 Positional and named parameters 408 17.1.3 Attribute parameter types 409 17.2 Attribute specification 409 17.3 Attribute instances 414 17.3.1 Compilation of an attribute 415 17.3.2 Run-time retrieval of an attribute instance 415 17.4 Reserved attributes 415 17.4.1 The AttributeUsage attribute 415 17.4.2 The Conditional attribute 416 17.4.2.1 Conditional methods 416 17.4.2.2 Conditional attribute classes 418 17.4.3 The Obsolete attribute 419 17.5 Attributes for Interoperation 420 17.5.1 Interoperation with COM and Win32 components 421 17.5.2 Interoperation with other .NET languages 421 17.5.2.1 The IndexerName attribute 421 18. Unsafe code 423 18.1 Unsafe contexts 423 18.2 Pointer types 425 18.3 Fixed and moveable variables 428 18.4 Pointer conversions 428 18.5 Pointers in expressions 429 18.5.1 Pointer indirection 430 18.5.2 Pointer member access 430 18.5.3 Pointer element access 431 18.5.4 The address-of operator 432 18.5.5 Pointer increment and decrement 433 18.5.6 Pointer arithmetic 433 18.5.7 Pointer comparison 434 18.5.8 The sizeof operator 434 18.6 The fixed statement 435 18.7 Fixed size buffers 438 18.7.1 Fixed size buffer declarations 438 18.7.2 Fixed size buffers in expressions 440 18.7.3 Definite assignment checking 440 18.8 Stack allocation 441 18.9 Dynamic memory allocation 442 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 微软 C#3.0
 输入关键字,在本站1000多万海量源码库中尽情搜索: