Shopping Cart

No products in the cart.

BS ISO/IEC 23270:2018

$215.11

Information technology. Programming languages. C#

Published By Publication Date Number of Pages
BSI 2018 536
Guaranteed Safe Checkout
Category:

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. We’re here to assist you 24/7.
Email:[email protected]

This specification describes the form and establishes the interpretation of programs written in the C# programming language. It describes

  • The representation of C# programs;

  • The syntax and constraints of the C# language;

  • The semantic rules for interpreting C# programs;

  • The restrictions and limits imposed by a conforming implementation of C#.

This specification does not describe

  • The mechanism by which C# programs are transformed for use by a data-processing system;

  • The mechanism by which C# applications are invoked for use by a data-processing system;

  • The mechanism by which input data are transformed for use by a C# application;

  • The mechanism by which output data are transformed after being produced by a C# application;

  • The size or complexity of a program and its data that will exceed the capacity of any specific data-processing system or the capacity of a particular processor;

  • All minimal requirements of a data-processing system that is capable of supporting a conforming implementation.

PDF Catalog

PDF Pages PDF Title
2 undefined
5 Table of Contents
22 Blank Page
23 Introduction
25 1. Scope
27 2. Normative references
29 3. Terms and definitions
31 4. Acronyms and abbreviations
33 5. General description
35 6. Conformance
37 7. Lexical structure
7.1 Programs
7.2 Grammars
7.2.1 General
7.2.2 Grammar notation
38 7.2.3 Lexical grammar
39 7.2.4 Syntactic grammar
7.2.5 Grammar ambiguities
40 7.3 Lexical analysis
7.3.1 General
7.3.2 Line terminators
41 7.3.3 Comments
42 7.3.4 White space
43 7.4 Tokens
7.4.1 General
7.4.2 Unicode character escape sequences
44 7.4.3 Identifiers
45 7.4.4 Keywords
46 7.4.5 Literals
7.4.5.1 General
47 7.4.5.2 Boolean literals
7.4.5.3 Integer literals
48 7.4.5.4 Real literals
49 7.4.5.5 Character literals
50 7.4.5.6 String literals
52 7.4.5.7 The null literal
7.4.6 Operators and punctuators
7.5 Pre-processing directives
7.5.1 General
54 7.5.2 Conditional compilation symbols
7.5.3 Pre-processing expressions
55 7.5.4 Definition directives
56 7.5.5 Conditional compilation directives
58 7.5.6 Diagnostic directives
59 7.5.7 Region directives
7.5.8 Line directives
60 7.5.9 Pragma directives
61 8. Basic concepts
8.1 Application startup
62 8.2 Application termination
8.3 Declarations
65 8.4 Members
8.4.1 General
8.4.2 Namespace members
8.4.3 Struct members
66 8.4.4 Enumeration members
8.4.5 Class members
8.4.6 Interface members
8.4.7 Array members
8.4.8 Delegate members
8.5 Member access
8.5.1 General
8.5.2 Declared accessibility
67 8.5.3 Accessibility domains
70 8.5.4 Protected access
71 8.5.5 Accessibility constraints
72 8.6 Signatures and overloading
73 8.7 Scopes
8.7.1 General
76 8.7.2 Name hiding
8.7.2.1 General
8.7.2.2 Hiding through nesting
77 8.7.2.3 Hiding through inheritance
78 8.8 Namespace and type names
8.8.1 General
80 8.8.2 Unqualified names
8.8.3 Fully qualified names
81 8.9 Automatic memory management
83 8.10 Execution order
85 9. Types
9.1 General
9.2 Reference types
9.2.1 General
86 9.2.2 Class types
9.2.3 The object type
87 9.2.4 The dynamic type
9.2.5 The string type
9.2.6 Interface types
9.2.7 Array types
9.2.8 Delegate types
9.3 Value types
9.3.1 General
88 9.3.2 The System.ValueType type
9.3.3 Default constructors
89 9.3.4 Struct types
9.3.5 Simple types
90 9.3.6 Integral types
91 9.3.7 Floating-point types
92 9.3.8 The decimal type
93 9.3.9 The bool type
9.3.10 Enumeration types
9.3.11 Nullable value types
94 9.3.12 Boxing and unboxing
9.4 Constructed types
9.4.1 General
95 9.4.2 Type arguments
9.4.3 Open and closed types
96 9.4.4 Bound and unbound types
9.4.5 Satisfying constraints
97 9.5 Type parameters
9.6 Expression tree types
98 9.7 The dynamic type
101 10. Variables
10.1 General
10.2 Variable categories
10.2.1 General
10.2.2 Static variables
10.2.3 Instance variables
10.2.3.1 General
102 10.2.3.2 Instance variables in classes
10.2.3.3 Instance variables in structs
10.2.4 Array elements
10.2.5 Value parameters
10.2.6 Reference parameters
103 10.2.7 Output parameters
10.2.8 Local variables
104 10.3 Default values
10.4 Definite assignment
10.4.1 General
105 10.4.2 Initially assigned variables
10.4.3 Initially unassigned variables
10.4.4 Precise rules for determining definite assignment
10.4.4.1 General
106 10.4.4.2 General rules for statements
10.4.4.3 Block statements, checked, and unchecked statements
10.4.4.4 Expression statements
107 10.4.4.5 Declaration statements
10.4.4.6 If statements
10.4.4.7 Switch statements
10.4.4.8 While statements
10.4.4.9 Do statements
108 10.4.4.10 For statements
10.4.4.11 Break, continue, and goto statements
10.4.4.12 Throw statements
10.4.4.13 Return statements
109 10.4.4.14 Try-catch statements
10.4.4.15 Try-finally statements
10.4.4.16 Try-catch-finally statements
110 10.4.4.17 Foreach statements
10.4.4.18 Using statements
111 10.4.4.19 Lock statements
10.4.4.20 Yield statements
10.4.4.21 General rules for constant expressions
112 10.4.4.22 General rules for simple expressions
10.4.4.23 General rules for expressions with embedded expressions
10.4.4.24 Invocation expressions and object creation expressions
113 10.4.4.25 Simple assignment expressions
10.4.4.26 && expressions
114 10.4.4.27 || expressions
115 10.4.4.28 ! expressions
10.4.4.29 ?? expressions
10.4.4.30 ?: expressions
116 10.4.4.31 Anonymous functions
10.5 Variable references
10.6 Atomicity of variable references
117 11. Conversions
11.1 General
11.2 Implicit conversions
11.2.1 General
118 11.2.2 Identity conversion
11.2.3 Implicit numeric conversions
11.2.4 Implicit enumeration conversions
11.2.5 Implicit nullable conversions
11.2.6 Null literal conversions
119 11.2.7 Implicit reference conversions
11.2.8 Boxing conversions
121 11.2.9 Implicit dynamic conversions
11.2.10 Implicit constant expression conversions
11.2.11 Implicit conversions involving type parameters
122 11.2.12 User-defined implicit conversions
11.2.13 Anonymous function conversions and method group conversions
11.3 Explicit conversions
11.3.1 General
123 11.3.2 Explicit numeric conversions
125 11.3.3 Explicit enumeration conversions
11.3.4 Explicit nullable conversions
11.3.5 Explicit reference conversions
126 11.3.6 Unboxing conversions
127 11.3.7 Explicit dynamic conversions
11.3.8 Explicit conversions involving type parameters
129 11.3.9 User-defined explicit conversions
11.4 Standard conversions
11.4.1 General
11.4.2 Standard implicit conversions
11.4.3 Standard explicit conversions
11.5 User-defined conversions
11.5.1 General
11.5.2 Permitted user-defined conversions
130 11.5.3 Evaluation of user-defined conversions
131 11.5.4 User-defined implicit conversions
11.5.5 User-defined explicit conversions
133 11.6 Conversions involving nullable types
11.6.1 Nullable Conversions
11.6.2 Lifted conversions
11.7 Anonymous function conversions
11.7.1 General
135 11.7.2 Evaluation of anonymous function conversions to delegate types
136 11.7.3 Evaluation of anonymous function conversions to expression tree types
11.8 Method group conversions
139 12. Expressions
12.1 General
12.2 Expression classifications
12.2.1 General
140 12.2.2 Values of expressions
12.3 Static and Dynamic Binding
12.3.1 General
141 12.3.2 Binding-time
12.3.3 Dynamic binding
142 12.3.4 Types of subexpressions
12.4 Operators
12.4.1 General
12.4.2 Operator precedence and associativity
143 12.4.3 Operator overloading
145 12.4.4 Unary operator overload resolution
12.4.5 Binary operator overload resolution
12.4.6 Candidate user-defined operators
146 12.4.7 Numeric promotions
12.4.7.1 General
12.4.7.2 Unary numeric promotions
12.4.7.3 Binary numeric promotions
147 12.4.8 Lifted operators
148 12.5 Member lookup
12.5.1 General
149 12.5.2 Base types
150 12.6 Function members
12.6.1 General
152 12.6.2 Argument lists
12.6.2.1 General
153 12.6.2.2 Corresponding parameters
154 12.6.2.3 Run-time evaluation of argument lists
155 12.6.3 Type inference
12.6.3.1 General
156 12.6.3.2 The first phase
157 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 Output type inferences
158 12.6.3.8 Explicit parameter type inferences
12.6.3.9 Exact inferences
12.6.3.10 Lower-bound inferences
12.6.3.11 Upper-bound inferences
159 12.6.3.12 Fixing
12.6.3.13 Inferred return type
161 12.6.3.14 Type inference for conversion of method groups
12.6.3.15 Finding the best common type of a set of expressions
12.6.4 Overload resolution
12.6.4.1 General
162 12.6.4.2 Applicable function member
163 12.6.4.3 Better function member
164 12.6.4.4 Better conversion from expression
12.6.4.5 Better conversion from type
12.6.4.6 Better conversion target
12.6.4.7 Overloading in generic classes
165 12.6.5 Compile-time checking of dynamic member invocation
166 12.6.6 Function member invocation
12.6.6.1 General
167 12.6.6.2 Invocations on boxed instances
12.7 Primary expressions
12.7.1 General
168 12.7.2 Literals
12.7.3 Simple names
12.7.3.1 General
170 12.7.3.2 Invariant meaning in blocks
12.7.4 Parenthesized expressions
171 12.7.5 Member access
12.7.5.1 General
173 12.7.5.2 Identical simple names and type names
12.7.6 Invocation expressions
12.7.6.1 General
174 12.7.6.2 Method invocations
175 12.7.6.3 Extension method invocations
177 12.7.6.4 Delegate invocations
178 12.7.7 Element access
12.7.7.1 General
12.7.7.2 Array access
179 12.7.7.3 Indexer access
180 12.7.8 This access
12.7.9 Base access
181 12.7.10 Postfix increment and decrement operators
182 12.7.11 The new operator
12.7.11.1 General
12.7.11.2 Object creation expressions
184 12.7.11.3 Object initializers
186 12.7.11.4 Collection initializers
187 12.7.11.5 Array creation expressions
189 12.7.11.6 Delegate creation expressions
190 12.7.11.7 Anonymous object creation expressions
192 12.7.12 The typeof operator
193 12.7.13 The sizeof operator
194 12.7.14 The checked and unchecked operators
196 12.7.15 Default value expressions
197 12.7.16 Anonymous method expressions
12.8 Unary operators
12.8.1 General
12.8.2 Unary plus operator
12.8.3 Unary minus operator
198 12.8.4 Logical negation operator
12.8.5 Bitwise complement operator
199 12.8.6 Prefix increment and decrement operators
200 12.8.7 Cast expressions
12.8.8 Await expressions
12.8.8.1 General
201 12.8.8.2 Awaitable expressions
12.8.8.3 Classification of await expressions
12.8.8.4 Run-time evaluation of await expressions
202 12.9 Arithmetic operators
12.9.1 General
12.9.2 Multiplication operator
203 12.9.3 Division operator
204 12.9.4 Remainder operator
205 12.9.5 Addition operator
207 12.9.6 Subtraction operator
209 12.10 Shift operators
210 12.11 Relational and type-testing operators
12.11.1 General
211 12.11.2 Integer comparison operators
212 12.11.3 Floating-point comparison operators
12.11.4 Decimal comparison operators
213 12.11.5 Boolean equality operators
12.11.6 Enumeration comparison operators
12.11.7 Reference type equality operators
215 12.11.8 String equality operators
12.11.9 Delegate equality operators
216 12.11.10 Equality operators between nullable value types and the null literal
12.11.11 The is operator
217 12.11.12 The as operator
218 12.12 Logical operators
12.12.1 General
12.12.2 Integer logical operators
219 12.12.3 Enumeration logical operators
12.12.4 Boolean logical operators
12.12.5 Nullable Boolean & and | operators
220 12.13 Conditional logical operators
12.13.1 General
221 12.13.2 Boolean conditional logical operators
12.13.3 User-defined conditional logical operators
222 12.14 The null coalescing operator
12.15 Conditional operator
223 12.16 Anonymous function expressions
12.16.1 General
225 12.16.2 Anonymous function signatures
12.16.3 Anonymous function bodies
226 12.16.4 Overload resolution
227 12.16.5 Anonymous functions and dynamic binding
12.16.6 Outer variables
12.16.6.1 General
12.16.6.2 Captured outer variables
228 12.16.6.3 Instantiation of local variables
230 12.16.7 Evaluation of anonymous function expressions
12.16.8 Implementation Exmple
233 12.17 Query expressions
12.17.1 General
234 12.17.2 Ambiguities in query expressions
12.17.3 Query expression translation
12.17.3.1 General
235 12.17.3.2 select and group … by clauses with continuations
12.17.3.3 Explicit range variable types
236 12.17.3.4 Degenerate query expressions
12.17.3.5 From, let, where, join and orderby clauses
240 12.17.3.6 Select clauses
12.17.3.7 Group clauses
12.17.3.8 Transparent identifiers
242 12.17.4 The query-expression pattern
243 12.18 Assignment operators
12.18.1 General
244 12.18.2 Simple assignment
246 12.18.3 Compound assignment
247 12.18.4 Event assignment
12.19 Expression
12.20 Constant expressions
249 12.21 Boolean expressions
251 13. Statements
13.1 General
13.2 End points and reachability
253 13.3 Blocks
13.3.1 General
13.3.2 Statement lists
254 13.4 The empty statement
13.5 Labeled statements
255 13.6 Declaration statements
13.6.1 General
13.6.2 Local variable declarations
257 13.6.3 Local constant declarations
13.7 Expression statements
258 13.8 Selection statements
13.8.1 General
13.8.2 The if statement
13.8.3 The switch statement
262 13.9 Iteration statements
13.9.1 General
13.9.2 The while statement
263 13.9.3 The do statement
13.9.4 The for statement
264 13.9.5 The foreach statement
267 13.10 Jump statements
13.10.1 General
268 13.10.2 The break statement
269 13.10.3 The continue statement
13.10.4 The goto statement
270 13.10.5 The return statement
271 13.10.6 The throw statement
272 13.11 The try statement
275 13.12 The checked and unchecked statements
13.13 The lock statement
276 13.14 The using statement
278 13.15 The yield statement
281 14. Namespaces
14.1 General
14.2 Compilation units
14.3 Namespace declarations
283 14.4 Extern alias directives
14.5 Using directives
14.5.1 General
284 14.5.2 Using alias directives
288 14.5.3 Using namespace directives
289 14.6 Namespace member declarations
290 14.7 Type declarations
14.8 Qualified alias member
14.8.1 General
292 14.8.2 Uniqueness of aliases
293 15. Classes
15.1 General
15.2 Class declarations
15.2.1 General
15.2.2 Class modifiers
15.2.2.1 General
294 15.2.2.2 Abstract classes
15.2.2.3 Sealed classes
295 15.2.2.4 Static classes
15.2.2.4.1 General
15.2.2.4.2 Referencing static class types
296 15.2.3 Type parameters
15.2.4 Class base specification
15.2.4.1 General
15.2.4.2 Base classes
298 15.2.4.3 Interface implementations
299 15.2.5 Type parameter constraints
304 15.2.6 Class body
15.2.7 Partial declarations
305 15.3 Class members
15.3.1 General
307 15.3.2 The instance type
15.3.3 Members of constructed types
308 15.3.4 Inheritance
309 15.3.5 The new modifier
15.3.6 Access modifiers
310 15.3.7 Constituent types
15.3.8 Static and instance members
311 15.3.9 Nested types
15.3.9.1 General
15.3.9.2 Fully qualified name
15.3.9.3 Declared accessibility
312 15.3.9.4 Hiding
15.3.9.5 this access
313 15.3.9.6 Access to private and protected members of the containing type
314 15.3.9.7 Nested types in generic classes
315 15.3.10 Reserved member names
15.3.10.1 General
15.3.10.2 Member names reserved for properties
316 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.4 Constants
318 15.5 Fields
15.5.1 General
319 15.5.2 Static and instance fields
15.5.3 Readonly fields
15.5.3.1 General
320 15.5.3.2 Using static readonly fields for constants
15.5.3.3 Versioning of constants and static readonly fields
321 15.5.4 Volatile fields
322 15.5.5 Field initialization
15.5.6 Variable initializers
15.5.6.1 General
323 15.5.6.2 Static field initialization
324 15.5.6.3 Instance field initialization
325 15.6 Methods
15.6.1 General
327 15.6.2 Method parameters
15.6.2.1 General
328 15.6.2.2 Value parameters
329 15.6.2.3 Reference parameters
15.6.2.4 Output parameters
330 15.6.2.5 Parameter arrays
333 15.6.3 Static and instance methods
15.6.4 Virtual methods
335 15.6.5 Override methods
337 15.6.6 Sealed methods
338 15.6.7 Abstract methods
339 15.6.8 External methods
15.6.9 Partial methods
342 15.6.10 Extension methods
343 15.6.11 Method body
15.7 Properties
15.7.1 General
345 15.7.2 Static and instance properties
15.7.3 Accessors
350 15.7.4 Automatically implemented properties
15.7.5 Accessibility
352 15.7.6 Virtual, sealed, override, and abstract accessors
353 15.8 Events
15.8.1 General
355 15.8.2 Field-like events
356 15.8.3 Event accessors
357 15.8.4 Static and instance events
358 15.8.5 Virtual, sealed, override, and abstract accessors
15.9 Indexers
362 15.10 Operators
15.10.1 General
363 15.10.2 Unary operators
364 15.10.3 Binary operators
15.10.4 Conversion operators
367 15.11 Instance constructors
15.11.1 General
368 15.11.2 Constructor initializers
15.11.3 Instance variable initializers
369 15.11.4 Constructor execution
370 15.11.5 Default constructors
371 15.12 Static constructors
373 15.13 Finalizers
375 15.14 Iterators
15.14.1 General
15.14.2 Enumerator interfaces
15.14.3 Enumerable interfaces
15.14.4 Yield type
15.14.5 Enumerator objects
15.14.5.1 General
376 15.14.5.2 The MoveNext method
377 15.14.5.3 The Current property
15.14.5.4 The Dispose method
378 15.14.6 Enumerable objects
15.14.6.1 General
15.14.6.2 The GetEnumerator method
15.15 Async Functions
15.15.1 General
379 15.15.2 Evaluation of a task-returning async function
15.15.3 Evaluation of a void-returning async function
381 16. Structs
16.1 General
16.2 Struct declarations
16.2.1 General
16.2.2 Struct modifiers
382 16.2.3 Partial modifier
16.2.4 Struct interfaces
16.2.5 Struct body
16.3 Struct members
16.4 Class and struct differences
16.4.1 General
383 16.4.2 Value semantics
384 16.4.3 Inheritance
16.4.4 Assignment
16.4.5 Default values
385 16.4.6 Boxing and unboxing
16.4.7 Meaning of this
386 16.4.8 Field initializers
387 16.4.9 Constructors
388 16.4.10 Static constructors
16.4.11 Automatically implemented properties
389 17. Arrays
17.1 General
17.2 Array types
17.2.1 General
17.2.2 The System.Array type
390 17.2.3 Arrays and the generic collection interfaces
391 17.3 Array creation
17.4 Array element access
17.5 Array members
17.6 Array covariance
392 17.7 Array initializers
395 18. Interfaces
18.1 General
18.2 Interface declarations
18.2.1 General
18.2.2 Interface modifiers
396 18.2.3 Variant type parameter lists
18.2.3.1 General
18.2.3.2 Variance safety
397 18.2.3.3 Variance conversion
18.2.4 Base interfaces
398 18.3 Interface body
18.4 Interface members
18.4.1 General
399 18.4.2 Interface methods
400 18.4.3 Interface properties
18.4.4 Interface events
18.4.5 Interface indexers
401 18.4.6 Interface member access
402 18.5 Qualified interface member names
403 18.6 Interface implementations
18.6.1 General
404 18.6.2 Explicit interface member implementations
406 18.6.3 Uniqueness of implemented interfaces
407 18.6.4 Implementation of generic methods
408 18.6.5 Interface mapping
411 18.6.6 Interface implementation inheritance
412 18.6.7 Interface re-implementation
413 18.6.8 Abstract classes and interfaces
415 19. Enums
19.1 General
19.2 Enum declarations
19.3 Enum modifiers
416 19.4 Enum members
418 19.5 The System.Enum type
19.6 Enum values and operations
419 20. Delegates
20.1 General
20.2 Delegate declarations
420 20.3 Delegate members
20.4 Delegate compatibility
422 20.5 Delegate instantiation
423 20.6 Delegate invocation
427 21. Exceptions
21.1 General
21.2 Causes of exceptions
21.3 The System.Exception class
21.4 How exceptions are handled
428 21.5 Common exception classes
429 22. Attributes
22.1 General
22.2 Attribute classes
22.2.1 General
22.2.2 Attribute usage
431 22.2.3 Positional and named parameters
22.2.4 Attribute parameter types
432 22.3 Attribute specification
438 22.4 Attribute instances
22.4.1 General
22.4.2 Compilation of an attribute
22.4.3 Run-time retrieval of an attribute instance
439 22.5 Reserved attributes
22.5.1 General
22.5.2 The AttributeUsage attribute
440 22.5.3 The Conditional attribute
22.5.3.1 General
22.5.3.2 Conditional methods
442 22.5.3.3 Conditional attribute classes
443 22.5.4 The Obsolete attribute
444 22.5.5 Caller-info attributes
22.5.5.1 General
445 22.5.5.2 The CallerLineNumber attribute
22.5.5.3 The CallerFilePath attribute
22.5.5.4 The CallerMemberName attribute
446 22.6 Attributes for interoperation
447 23. Unsafe code
23.1 General
23.2 Unsafe contexts
450 23.3 Pointer types
452 23.4 Fixed and moveable variables
453 23.5 Pointer conversions
23.5.1 General
454 23.5.2 Pointer arrays
455 23.6 Pointers in expressions
23.6.1 General
23.6.2 Pointer indirection
456 23.6.3 Pointer member access
457 23.6.4 Pointer element access
23.6.5 The address-of operator
458 23.6.6 Pointer increment and decrement
459 23.6.7 Pointer arithmetic
23.6.8 Pointer comparison
460 23.6.9 The sizeof operator
23.7 The fixed statement
463 23.8 Fixed-size buffers
23.8.1 General
23.8.2 Fixed-size buffer declarations
464 23.8.3 Fixed-size buffers in expressions
465 23.8.4 Definite assignment checking
23.9 Stack allocation
467 Annex A. Grammar
A.1 General
A.2 Lexical grammar
468 A.2.1 Comments
A.2.2 Tokens
470 A.2.3 Keywords
472 A.2.4 Operators and punctuators
A.2.5 Pre-processing directives
474 A.3 Syntactic grammar
A.3.1 Basic concepts
A.3.2 Types
475 A.3.3 Variables
476 A.3.4 Expressions
482 A.3.5 Statements
485 A.3.6 Namespaces
486 A.3.7 Classes
493 A.3.8 Structs
A.3.9 Arrays
A.3.10 Interfaces
494 A.3.11 Enums
495 A.3.12 Delegates
A.3.13 Attributes
496 A.4 Grammar extensions for unsafe code
501 Annex B. Portability issues
B.1 General
B.2 Undefined behavior
B.3 Implementation-defined behavior
502 B.4 Unspecified behavior
B.5 Other Issues
503 Annex C. Standard library
C.1 General
C.2 Standard Library Types defined in ISO/IEC 23271
512 C.3 Standard Library Types not defined in ISO/IEC 23271:2012
515 Annex D. Documentation comments
D.1 General
D.2 Introduction
516 D.3 Recommended tags
D.3.1 General
517 D.3.2
D.3.3
518 D.3.4
D.3.5
519 D.3.6
D.3.7
520 D.3.8
521 D.3.9
D.3.10
D.3.11
522 D.3.12
D.3.13
523 D.3.14
D.3.15
D.3.16

524 D.3.17
D.3.18
D.3.19
525 D.4 Processing the documentation file
D.4.1 General
D.4.2 ID string format
526 D.4.3 ID string examples
530 D.5 An example
D.5.1 C# source code
532 D.5.2 Resulting XML
535 Bibliography
BS ISO/IEC 23270:2018
$215.11