Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
- Foreword
- Introduction
- ยง1 Scope
- ยง2 Normative references
- ยง3 Terms and definitions
- ยง4 General description
- ยง5 Conformance
- ยง6 Lexical structure
- ยง7 Basic concepts
- ยง8 Types
- ยง8.1 General
- ยง8.2 Reference types
- ยง8.3 Value types
- ยง8.3.1 General
- ยง8.3.2 The System.ValueType type
- ยง8.3.3 Default constructors
- ยง8.3.4 Struct types
- ยง8.3.5 Simple types
- ยง8.3.6 Integral types
- ยง8.3.7 Floating-point types
- ยง8.3.8 The Decimal type
- ยง8.3.9 The Bool type
- ยง8.3.10 Enumeration types
- ยง8.3.11 Tuple types
- ยง8.3.11.1 General
- ยง8.3.11.2 Eliding intermediate tuple creation
- ยง8.3.11.3 Runtime representation
- ยง8.3.12 Nullable value types
- ยง8.3.13 Boxing and unboxing
- ยง8.4 Constructed types
- ยง8.5 Type parameters
- ยง8.6 Expression tree types
- ยง8.7 The dynamic type
- ยง8.8 Unmanaged types
- ยง8.9 Reference Types and nullability
- ยง9 Variables
- ยง9.1 General
- ยง9.2 Variable categories
- ยง9.3 Default values
- ยง9.4 Definite assignment
- ยง9.4.1 General
- ยง9.4.2 Initially assigned variables
- ยง9.4.3 Initially unassigned variables
- ยง9.4.4 Precise rules for determining definite assignment
- ยง9.4.4.1 General
- ยง9.4.4.2 General rules for statements
- ยง9.4.4.3 Block statements, checked, and unchecked statements
- ยง9.4.4.4 Expression statements
- ยง9.4.4.5 Declaration statements
- ยง9.4.4.6 If statements
- ยง9.4.4.7 Switch statements
- ยง9.4.4.8 While statements
- ยง9.4.4.9 Do statements
- ยง9.4.4.10 For statements
- ยง9.4.4.11 Break, continue, and goto statements
- ยง9.4.4.12 Throw statements
- ยง9.4.4.13 Return statements
- ยง9.4.4.14 Try-catch statements
- ยง9.4.4.15 Try-finally statements
- ยง9.4.4.16 Try-catch-finally statements
- ยง9.4.4.17 Foreach statements
- ยง9.4.4.18 Using statements
- ยง9.4.4.19 Lock statements
- ยง9.4.4.20 Yield statements
- ยง9.4.4.21 General rules for constant expressions
- ยง9.4.4.22 General rules for simple expressions
- ยง9.4.4.23 General rules for expressions with embedded expressions
- ยง9.4.4.24 Invocation expressions and object creation expressions
- ยง9.4.4.25 Simple and deconstructing assignment expressions
- ยง9.4.4.26 && expressions
- ยง9.4.4.27 || expressions
- ยง9.4.4.28 ! expressions
- ยง9.4.4.29 ?? expressions
- ยง9.4.4.30 ?: expressions
- ยง9.4.4.31 Anonymous functions
- ยง9.4.4.32 Throw expressions
- ยง9.4.4.33 Rules for variables in local functions
- ยง9.4.4.34 is-pattern expressions
- ยง9.4.4.35 ?. expressions
- ยง9.4.4.36 Boolean constant expressions
- ยง9.4.4.37 ==/!= expressions
- ยง9.4.4.38 is operator and is pattern expressions
- ยง9.5 Variable references
- ยง9.6 Atomicity of variable references
- ยง9.7 Reference variables and returns
- ยง10 Conversions
- ยง10.1 General
- ยง10.2 Implicit conversions
- ยง10.2.1 General
- ยง10.2.2 Identity conversion
- ยง10.2.3 Implicit numeric conversions
- ยง10.2.4 Implicit enumeration conversions
- ยง10.2.5 Implicit interpolated string conversions
- ยง10.2.6 Implicit nullable conversions
- ยง10.2.7 Null literal conversions
- ยง10.2.8 Implicit reference conversions
- ยง10.2.9 Boxing conversions
- ยง10.2.10 Implicit dynamic conversions
- ยง10.2.11 Implicit constant expression conversions
- ยง10.2.12 Implicit conversions involving type parameters
- ยง10.2.13 Implicit tuple conversions
- ยง10.2.14 User-defined implicit conversions
- ยง10.2.15 Anonymous function conversions and method group conversions
- ยง10.2.16 Default literal conversions
- ยง10.2.17 Implicit throw conversions
- ยง10.2.18 Switch expression conversion
- ยง10.2.19 Implicit object-creation conversions
- ยง10.2.20 Implicit conditional expression conversions
- ยง10.2.21 Anonymous function type conversion
- ยง10.2.22 Implicit collection expression conversions
- ยง10.2.23 Implicit inline array conversions
- ยง10.3 Explicit conversions
- ยง10.3.1 General
- ยง10.3.2 Explicit numeric conversions
- ยง10.3.3 Explicit enumeration conversions
- ยง10.3.4 Explicit nullable conversions
- ยง10.3.5 Explicit reference conversions
- ยง10.3.6 Explicit tuple conversions
- ยง10.3.7 Unboxing conversions
- ยง10.3.8 Explicit conversions involving type parameters
- ยง10.3.9 User-defined explicit conversions
- ยง10.4 Standard conversions
- ยง10.5 User-defined conversions
- ยง10.6 Conversions involving nullable types
- ยง10.7 Anonymous function conversions
- ยง10.8 Method group conversions
- ยง11 Patterns and pattern matching
- ยง12 Expressions
- ยง12.1 General
- ยง12.2 Expression classifications
- ยง12.3 Static and Dynamic Binding
- ยง12.4 Operators
- ยง12.4.1 General
- ยง12.4.2 Operator precedence and associativity
- ยง12.4.3 Operator overloading
- ยง12.4.4 Unary operator overload resolution
- ยง12.4.5 Binary operator overload resolution
- ยง12.4.6 Candidate user-defined operators
- ยง12.4.7 Numeric promotions
- ยง12.4.7.1 General
- ยง12.4.7.2 Unary numeric promotions
- ยง12.4.7.3 Binary numeric promotions
- ยง12.4.8 Lifted operators
- ยง12.5 Member lookup
- ยง12.6 Function members
- ยง12.6.1 General
- ยง12.6.2 Argument lists
- ยง12.6.2.1 General
- ยง12.6.2.2 Corresponding parameters
- ยง12.6.2.3 Run-time evaluation of argument lists
- ยง12.6.3 Type inference
- ยง12.6.3.1 General
- ยง12.6.3.2 The first phase
- ยง12.6.3.3 The second phase
- ยง12.6.3.4 Input types
- ยง12.6.3.5 Output types
- ยง12.6.3.6 Dependence
- ยง12.6.3.7 Input type inferences
- ยง12.6.3.8 Output type inferences
- ยง12.6.3.9 Explicit parameter type inferences
- ยง12.6.3.10 Exact inferences
- ยง12.6.3.11 Lower-bound inferences
- ยง12.6.3.12 Upper-bound inferences
- ยง12.6.3.13 Fixing
- ยง12.6.3.14 Inferred return type
- ยง12.6.3.15 Explicit return type inference
- ยง12.6.3.16 Type inference for conversion of method groups
- ยง12.6.3.17 Finding the best common type of a set of expressions
- ยง12.6.4 Overload resolution
- ยง12.6.4.1 General
- ยง12.6.4.2 Applicable function member
- ยง12.6.4.3 Better function member
- ยง12.6.4.4 Better parameter-passing mode
- ยง12.6.4.5 Better conversion from expression
- ยง12.6.4.6 Exactly matching expression
- ยง12.6.4.7 Better conversion target
- ยง12.6.4.8 Overloading in generic classes
- ยง12.6.5 Compile-time checking of dynamic member invocation
- ยง12.6.6 Function member invocation
- ยง12.6.6.1 General
- ยง12.6.6.2 Invocations on boxed instances
- ยง12.7 Deconstruction
- ยง12.8 Primary expressions
- ยง12.8.1 General
- ยง12.8.2 Literals
- ยง12.8.3 Interpolated string expressions
- ยง12.8.4 Simple names
- ยง12.8.5 Parenthesized expressions
- ยง12.8.6 Tuple literals
- ยง12.8.7 Member access
- ยง12.8.7.1 General
- ยง12.8.7.2 Identical simple names and type names
- ยง12.8.8 Null Conditional Member Access
- ยง12.8.9 Null-forgiving expressions
- ยง12.8.9.1 General
- ยง12.8.9.2 Overriding a โmaybe nullโ determination
- ยง12.8.9.3 Overriding other null analysis warnings
- ยง12.8.10 Invocation expressions
- ยง12.8.10.1 General
- ยง12.8.10.2 Method invocations
- ยง12.8.10.3 Extension method invocations
- ยง12.8.10.4 Delegate invocations
- ยง12.8.11 Null Conditional Invocation Expression
- ยง12.8.12 Element access
- ยง12.8.12.1 General
- ยง12.8.12.2 Array access
- ยง12.8.12.3 Inline array element access
- ยง12.8.12.4 String access
- ยง12.8.12.5 Indexer access
- ยง12.8.13 Null Conditional Element Access
- ยง12.8.14 This access
- ยง12.8.15 Base access
- ยง12.8.16 Postfix increment and decrement operators
- ยง12.8.17 The new operator
- ยง12.8.17.1 General
- ยง12.8.17.2 Object creation expressions
- ยง12.8.17.2.1 General
- ยง12.8.17.2.2 Object initializers
- ยง12.8.17.2.3 Collection initializers
- ยง12.8.17.3 Anonymous object creation expressions
- ยง12.8.17.4 Array creation expressions
- ยง12.8.17.5 Delegate creation expressions
- ยง12.8.18 The typeof operator
- ยง12.8.19 The sizeof operator
- ยง12.8.20 The checked and unchecked operators
- ยง12.8.21 Default value expressions
- ยง12.8.22 Stack allocation
- ยง12.8.23 The nameof operator
- ยง12.8.24 Anonymous method expressions
- ยง12.8.25 Collection expressions
- ยง12.9 Unary operators
- ยง12.9.1 General
- ยง12.9.2 Unary plus operator
- ยง12.9.3 Unary minus operator
- ยง12.9.4 Logical negation operator
- ยง12.9.5 Bitwise complement operator
- ยง12.9.6 Index from-end operator
- ยง12.9.7 Prefix increment and decrement operators
- ยง12.9.8 Cast expressions
- ยง12.9.9 Await expressions
- ยง12.9.9.1 General
- ยง12.9.9.2 Awaitable expressions
- ยง12.9.9.3 Classification of await expressions
- ยง12.9.9.4 Run-time evaluation of await expressions
- ยง12.10 With expressions
- ยง12.11 Range operator
- ยง12.12 Switch expression
- ยง12.13 Arithmetic operators
- ยง12.14 Shift operators
- ยง12.15 Relational and type-testing operators
- ยง12.15.1 General
- ยง12.15.2 Integer comparison operators
- ยง12.15.3 Floating-point comparison operators
- ยง12.15.4 Decimal comparison operators
- ยง12.15.5 Boolean equality operators
- ยง12.15.6 Enumeration comparison operators
- ยง12.15.7 Reference type equality operators
- ยง12.15.8 String equality operators
- ยง12.15.9 Delegate equality operators
- ยง12.15.10 Equality operators between nullable value types and the null literal
- ยง12.15.11 Tuple equality operators
- ยง12.15.12 The is operator
- ยง12.15.12.1 The is-type operator
- ยง12.15.12.2 The is-pattern operator
- ยง12.15.13 The as operator
- ยง12.16 Logical operators
- ยง12.17 Conditional logical operators
- ยง12.18 The null coalescing operator
- ยง12.19 The throw expression operator
- ยง12.20 Declaration expressions
- ยง12.21 Conditional operator
- ยง12.22 Anonymous function expressions
- ยง12.22.1 General
- ยง12.22.2 Anonymous function signatures
- ยง12.22.3 Anonymous function bodies
- ยง12.22.4 Overload resolution
- ยง12.22.5 Anonymous functions and dynamic binding
- ยง12.22.6 Outer variables
- ยง12.22.6.1 General
- ยง12.22.6.2 Captured outer variables
- ยง12.22.6.3 Instantiation of local variables
- ยง12.22.7 Evaluation of anonymous function expressions
- ยง12.22.8 Anonymous function type
- ยง12.22.9 Implementation Example
- ยง12.23 Query expressions
- ยง12.23.1 General
- ยง12.23.2 Ambiguities in query expressions
- ยง12.23.3 Query expression translation
- ยง12.23.3.1 General
- ยง12.23.3.2 Query expressions with continuations
- ยง12.23.3.3 Explicit range variable types
- ยง12.23.3.4 Degenerate query expressions
- ยง12.23.3.5 From, let, where, join and orderby clauses
- ยง12.23.3.6 Select clauses
- ยง12.23.3.7 Group clauses
- ยง12.23.3.8 Transparent identifiers
- ยง12.23.4 The query-expression pattern
- ยง12.24 Assignment operators
- ยง12.24.1 General
- ยง12.24.2 Simple assignment
- ยง12.24.3 Deconstructing assignment
- ยง12.24.3.1 General
- ยง12.24.3.2 Abridged deconstructors
- ยง12.24.4 Ref assignment
- ยง12.24.5 Compound assignment
- ยง12.24.6 Event assignment
- ยง12.25 Expression
- ยง12.26 Constant expressions
- ยง12.27 Boolean expressions
- ยง13 Statements
- ยง13.1 General
- ยง13.2 End points and reachability
- ยง13.3 Blocks
- ยง13.4 The empty statement
- ยง13.5 Labeled statements
- ยง13.6 Declaration statements
- ยง13.6.1 General
- ยง13.6.2 Local variable declarations
- ยง13.6.2.1 General
- ยง13.6.2.2 Implicitly typed local variable declarations
- ยง13.6.2.3 Explicitly typed local variable declarations
- ยง13.6.2.4 Explicitly typed ref local variable declarations
- ยง13.6.3 Local constant declarations
- ยง13.6.4 Local function declarations
- ยง13.7 Expression statements
- ยง13.8 Selection statements
- ยง13.9 Iteration statements
- ยง13.9.1 General
- ยง13.9.2 The while statement
- ยง13.9.3 The do statement
- ยง13.9.4 The for statement
- ยง13.9.5 The foreach statement
- ยง13.9.5.1 General
- ยง13.9.5.2 Synchronous foreach
- ยง13.9.5.3 Asynchronous foreach
- ยง13.9.5.4 Deconstructing foreach
- ยง13.10 Jump statements
- ยง13.11 The try statement
- ยง13.12 The checked and unchecked statements
- ยง13.13 The lock statement
- ยง13.14 The using statement
- ยง13.15 The yield statement
- ยง14 Namespaces
- ยง15 Classes
- ยง15.1 General
- ยง15.2 Class declarations
- ยง15.2.1 General
- ยง15.2.2 Class modifiers
- ยง15.2.2.1 General
- ยง15.2.2.2 Abstract classes
- ยง15.2.2.3 Sealed classes
- ยง15.2.2.4 Static classes
- ยง15.2.2.4.1 General
- ยง15.2.2.4.2 Referencing static class types
- ยง15.2.3 Type parameters
- ยง15.2.4 Class base specification
- ยง15.2.4.1 General
- ยง15.2.4.2 Base classes
- ยง15.2.4.3 Interface implementations
- ยง15.2.5 Type parameter constraints
- ยง15.2.6 Class body
- ยง15.2.7 Partial type declarations
- ยง15.3 Class members
- ยง15.3.1 General
- ยง15.3.2 The instance type
- ยง15.3.3 Members of constructed types
- ยง15.3.4 Inheritance
- ยง15.3.5 The new modifier
- ยง15.3.6 Access modifiers
- ยง15.3.7 Constituent types
- ยง15.3.8 Static and instance members
- ยง15.3.9 Nested types
- ยง15.3.9.1 General
- ยง15.3.9.2 Fully qualified name
- ยง15.3.9.3 Declared accessibility
- ยง15.3.9.4 Hiding
- ยง15.3.9.5 this access
- ยง15.3.9.6 Access to private and protected members of the containing type
- ยง15.3.9.7 Nested types in generic classes
- ยง15.3.10 Reserved member names
- ยง15.3.10.1 General
- ยง15.3.10.2 Member names reserved for properties
- ยง15.3.10.3 Member names reserved for events
- ยง15.3.10.4 Member names reserved for indexers
- ยง15.3.10.5 Member names reserved for finalizers
- ยง15.3.10.6 Method names reserved for operators
- ยง15.4 Constants
- ยง15.5 Fields
- ยง15.5.1 General
- ยง15.5.2 Static and instance fields
- ยง15.5.3 Readonly fields
- ยง15.5.3.1 General
- ยง15.5.3.2 Using static readonly fields for constants
- ยง15.5.3.3 Versioning of constants and static readonly fields
- ยง15.5.4 Volatile fields
- ยง15.5.5 Field initialization
- ยง15.5.6 Variable initializers
- ยง15.5.6.1 General
- ยง15.5.6.2 Static field initialization
- ยง15.5.6.3 Instance field initialization
- ยง15.6 Methods
- ยง15.6.1 General
- ยง15.6.2 Method parameters
- ยง15.6.2.1 General
- ยง15.6.2.2 Value parameters
- ยง15.6.2.3 By-reference parameters
- ยง15.6.2.3.1 General
- ยง15.6.2.3.2 Input parameters
- ยง15.6.2.3.3 Reference parameters
- ยง15.6.2.3.4 Output parameters
- ยง15.6.2.4 Parameter collections
- ยง15.6.3 Static and instance methods
- ยง15.6.4 Virtual methods
- ยง15.6.5 Override methods
- ยง15.6.6 Sealed methods
- ยง15.6.7 Abstract methods
- ยง15.6.8 External methods
- ยง15.6.9 Partial methods
- ยง15.6.9.1 General
- ยง15.6.9.2 Optional partial methods
- ยง15.6.9.3 Required partial methods
- ยง15.6.10 Extension methods
- ยง15.6.11 Method body
- ยง15.7 Properties
- ยง15.7.1 General
- ยง15.7.2 Static and instance properties
- ยง15.7.3 Accessors
- ยง15.7.3.1 General
- ยง15.7.3.2 Set and get accessors
- ยง15.7.3.3 Init accessors
- ยง15.7.4 Automatically implemented properties
- ยง15.7.5 Accessibility
- ยง15.7.6 Virtual, sealed, override, and abstract accessors
- ยง15.7.7 Partial properties
- ยง15.8 Events
- ยง15.9 Indexers
- ยง15.10 Operators
- ยง15.11 Instance constructors
- ยง15.12 Static constructors
- ยง15.13 Finalizers
- ยง15.14 Async Functions
- ยง15.15 Synchronous and asynchronous iterators
- ยง15.15.1 General
- ยง15.15.2 Enumerator interfaces
- ยง15.15.3 Enumerable interfaces
- ยง15.15.4 Yield type
- ยง15.15.5 Enumerator objects
- ยง15.15.5.1 General
- ยง15.15.5.2 Advance the enumerator
- ยง15.15.5.3 Retrieve the current value
- ยง15.15.5.4 Dispose of resources
- ยง15.15.6 Enumerable objects
- ยง15.15.6.1 General
- ยง15.15.6.2 The GetEnumerator or GetAsyncEnumerator method
- ยง15.16 Record classes
- ยง15.16.1 General
- ยง15.16.2 Class members
- ยง15.16.3 Instance constructors
- ยง15.16.4 Implicit record class members
- ยง15.16.4.1 General
- ยง15.16.4.2 Copy constructors
- ยง15.16.4.3 Equality members
- ยง15.16.4.4 Copy and clone members
- ยง15.16.4.5 Printing members
- ยง15.16.4.6 Positional record class members
- ยง15.16.4.6.1 General
- ยง15.16.4.6.2 Primary constructor
- ยง15.16.4.6.3 Properties
- ยง15.16.4.6.4 Deconstruct
- ยง15.17 Declaring a collection type
- ยง15.18 Record class and non-record class differences
- ยง16 Structs
- ยง16.1 General
- ยง16.2 Struct declarations
- ยง16.3 Struct members
- ยง16.4 Primary constructors
- ยง16.5 Record structs
- ยง16.5.1 General
- ยง16.5.2 Struct members
- ยง16.5.3 Implicit record struct members
- ยง16.5.3.1 General
- ยง16.5.3.2 Primary constructors
- ยง16.5.3.3 Equality members
- ยง16.5.3.4 Printing members
- ยง16.5.3.5 Positional record struct members
- ยง16.5.3.5.1 General
- ยง16.5.3.5.2 Primary constructor
- ยง16.5.3.5.3 Properties
- ยง16.5.3.5.4 Deconstruct
- ยง16.6 Inline arrays
- ยง16.7 Record struct and non-record struct differences
- ยง16.8 Class and struct differences
- ยง16.8.1 General
- ยง16.8.2 Value semantics
- ยง16.8.3 Inheritance
- ยง16.8.4 Assignment
- ยง16.8.5 Default values
- ยง16.8.6 Boxing and unboxing
- ยง16.8.7 Meaning of this
- ยง16.8.8 Fields
- ยง16.8.8.1 Field initializers
- ยง16.8.8.2 Ref fields
- ยง16.8.9 Constructors
- ยง16.8.10 Static constructors
- ยง16.8.11 Properties
- ยง16.8.12 Methods
- ยง16.8.13 Indexers
- ยง16.8.14 Events
- ยง16.8.15 Safe context constraint
- ยง16.8.15.1 General
- ยง16.8.15.2 Parameter safe context
- ยง16.8.15.3 Local variable safe context
- ยง16.8.15.4 Field safe context
- ยง16.8.15.5 Operators
- ยง16.8.15.6 Method and property invocation
- ยง16.8.15.7 Method arguments must match
- ยง16.8.15.8 Infer safe-context of declaration expressions
- ยง16.8.15.9 Object initializer safe context
- ยง16.8.15.10 stackalloc
- ยง16.8.15.11 Constructor invocations
- ยง17 Arrays
- ยง18 Extended indexing and slicing
- ยง19 Interfaces
- ยง19.1 General
- ยง19.2 Interface declarations
- ยง19.2.1 General
- ยง19.2.2 Interface modifiers
- ยง19.2.3 Variant type parameter lists
- ยง19.2.3.1 General
- ยง19.2.3.2 Variance safety
- ยง19.2.3.3 Variance conversion
- ยง19.2.4 Base interfaces
- ยง19.3 Interface body
- ยง19.4 Interface members
- ยง19.4.1 General
- ยง19.4.2 Interface fields
- ยง19.4.3 Interface methods
- ยง19.4.4 Interface properties
- ยง19.4.5 Interface events
- ยง19.4.6 Interface indexers
- ยง19.4.7 Interface operators
- ยง19.4.8 Interface static constructors
- ยง19.4.9 Interface nested types
- ยง19.4.10 Most specific implementation
- ยง19.4.11 Interface member access
- ยง19.5 Qualified interface member names
- ยง19.6 Interface implementations
- ยง19.6.1 General
- ยง19.6.2 Explicit interface member implementations
- ยง19.6.3 Uniqueness of implemented interfaces
- ยง19.6.4 Implementation of generic methods
- ยง19.6.5 Interface mapping
- ยง19.6.6 Interface implementation inheritance
- ยง19.6.7 Interface re-implementation
- ยง19.6.8 Abstract classes and interfaces
- ยง20 Enums
- ยง21 Delegates
- ยง22 Exceptions
- ยง23 Attributes
- ยง23.1 General
- ยง23.2 Attribute classes
- ยง23.3 Attribute specification
- ยง23.4 Attribute instances
- ยง23.5 Reserved attributes
- ยง23.5.1 General
- ยง23.5.2 The AttributeUsage attribute
- ยง23.5.3 The Conditional attribute
- ยง23.5.3.1 General
- ยง23.5.3.2 Conditional methods
- ยง23.5.3.3 Conditional local functions
- ยง23.5.3.4 Conditional attribute classes
- ยง23.5.4 The Obsolete attribute
- ยง23.5.5 The AsyncMethodBuilder attribute
- ยง23.5.6 Caller-info attributes
- ยง23.5.6.1 General
- ยง23.5.6.2 The CallerLineNumber attribute
- ยง23.5.6.3 The CallerFilePath attribute
- ยง23.5.6.4 The CallerMemberName attribute
- ยง23.5.6.5 The CallerArgumentExpression attribute
- ยง23.5.7 Code analysis attributes
- ยง23.5.7.1 General
- ยง23.5.7.2 The AllowNull attribute
- ยง23.5.7.3 The DisallowNull attribute
- ยง23.5.7.4 The DoesNotReturn attribute
- ยง23.5.7.5 The DoesNotReturnIf attribute
- ยง23.5.7.6 The MaybeNull attribute
- ยง23.5.7.7 The MaybeNullWhen attribute
- ยง23.5.7.8 The MemberNotNull attribute
- ยง23.5.7.9 The MemberNotNullWhen attribute
- ยง23.5.7.10 The NotNull attribute
- ยง23.5.7.11 The NotNullIfNotNull attribute
- ยง23.5.7.12 The NotNullWhen attribute
- ยง23.5.8 The UnscopedRef attribute
- ยง23.5.9 The ScopedRef attribute
- ยง23.5.10 The EnumeratorCancellation attribute
- ยง23.5.11 The ModuleInitializer attribute
- ยง23.5.11.1 Custom interpolated string expression handlers
- ยง23.5.11.1.1 Declaring a custom handler
- ยง23.5.11.1.2 Inhibiting a custom handler
- ยง23.5.11.1.3 Passing information to/from a custom handler
- ยง23.5.11.1 Custom interpolated string expression handlers
- ยง23.5.12 Required member attributes
- ยง23.5.12.1 The SetsRequiredMembers attribute
- ยง23.5.12.2 The RequiredMember attribute
- ยง23.5.13 The CollectionBuilder attribute
- ยง23.5.14 The InlineArray attribute
- ยง23.5.15 The OverloadResolutionPriority attribute
- ยง23.6 Attributes for interoperation
- ยง24 Unsafe code
- ยงA Grammar
- ยงB Portability issues
- ยงC Standard library
- ยงD Documentation comments
- ยงD.1 General
- ยงD.2 Introduction
- ยงD.3 Recommended tags
- ยงD.3.1 General
- ยงD.3.2 <c>
- ยงD.3.3 <code>
- ยงD.3.4 <example>
- ยงD.3.5 <exception>
- ยงD.3.6 <include>
- ยงD.3.7 <list>
- ยงD.3.8 <para>
- ยงD.3.9 <param>
- ยงD.3.10 <paramref>
- ยงD.3.11 <permission>
- ยงD.3.12 <remarks>
- ยงD.3.13 <returns>
- ยงD.3.14 <see>
- ยงD.3.15 <seealso>
- ยงD.3.16 <summary>
- ยงD.3.17 <typeparam>
- ยงD.3.18 <typeparamref>
- ยงD.3.19 <value>
- ยงD.4 Processing the documentation file
- ยงD.5 An example
- ยงE Bibliography
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
ECMA C# draft specification