language337 pages
Language
C# as a language: syntax, types, statements, and the conventions the team ships in the box.
- System.Delegate and the `delegate` keyword 06/20/2016
- Introduction to delegates and events in C# 03/24/2022
- Common patterns for delegates 06/20/2016
- Strongly Typed Delegates 06/20/2016
- Delegates vs. events 03/11/2025
- Standard .NET event patterns 03/13/2025
- Introduction to events 03/11/2025
- Common C# code conventions 01/15/2025
- C# identifier naming rules and conventions 10/10/2025
- Compiler-generated exceptions 05/14/2021
- Create and throw exceptions 10/31/2023
- Exception Handling (C# Programming Guide) 05/14/2021
- How to execute cleanup code using finally 05/14/2021
- How to handle an exception using try/catch 05/14/2021
- Exceptions and Exception Handling 05/14/2021
- Use exceptions 05/14/2021
- C# Equality comparisons 08/18/2026
- C# expressions 08/13/2026
- C# operators 08/18/2026
- Deconstructing tuples and other types 11/22/2024
- Resolve nullable warnings 05/04/2026
- C# null safety 04/30/2026
- C# null operators 04/30/2026
- Nullable reference types 05/04/2026
- Nullable value types: C# Fundamentals 04/30/2026
- Overview of object oriented techniques in C# 04/17/2025
- Inheritance - derive types to create more specialized behavior 05/14/2021
- Objects - create instances of types 10/13/2025
- Polymorphism 10/13/2025
- Declaration, constant, and `var` patterns 09/15/2026
- Discards and the discard pattern 09/17/2026
- Pattern matching overview 09/14/2026
- Type patterns 09/15/2026
- General structure of a C# program 03/16/2026
- Main() and command-line arguments 03/16/2026
- Namespaces and using directives 03/16/2026
- Preprocessor directives 03/16/2026
- Program organization 03/16/2026
- Top-level statements - programs without `Main` methods 03/16/2026
- Common collection types 07/15/2026
- C# statements 08/20/2026
- Iteration statements 07/09/2026
- LINQ queries 07/15/2026
- Selection statements 08/20/2026
- Compare strings in C# 06/24/2026
- Concatenate strings in C# 06/24/2026
- Modify string contents in C# 06/24/2026
- Search strings in C# 05/21/2026
- Split strings into substrings in C# 05/21/2026
- C# strings 05/08/2026
- String interpolation in C# 05/21/2026
- The `nameof` operator 05/08/2026
- Raw string literals 05/08/2026
- Tutorial: Choose between tuples, records, structs, and classes 04/30/2026
- Explore object oriented programming with classes and objects 10/10/2025
- Tutorial: Build file-based C# programs 01/12/2026
- How to display command-line arguments 02/25/2022
- Inheritance in C# and .NET 02/25/2022
- Tutorial: Express your design intent with nullable and non-nullable reference types 05/04/2026
- Object-Oriented programming 10/10/2025
- Tutorial: Use pattern matching to build type-driven and data-driven algorithms 02/25/2022
- Use record types 04/14/2026
- How to safely cast by using pattern matching and the is and as operators 02/25/2022
- Tutorial: Use string interpolation to build a report in C# 06/24/2026
- Tutorial: Build a command-line app with System.CommandLine 03/23/2026
- Tutorial: Create XML documentation 10/14/2025
- Built-in types and literals 03/24/2026
- C# classes 03/25/2026
- Type conversions, casting, and boxing 04/14/2026
- Lambda expressions, delegates, and events 04/27/2026
- C# enumerations 04/10/2026
- Generic types and methods 04/10/2026
- The C# type system 03/24/2026
- Interfaces - define behavior for multiple types 04/10/2026
- C# record types 03/25/2026
- C# structs 03/25/2026
- Tuples and deconstruction 04/10/2026
- Iterators 11/09/2021
- Determine caller information by using attributes that the C# compiler interprets 01/14/2026
- Miscellaneous attributes interpreted by the C# compiler 02/17/2026
- Assembly level attributes interpreted by the C# compiler 01/14/2026
- Attributes for null-state static analysis interpreted by the C# compiler 01/14/2026
- Custom attributes that generate flags or options in the Intermediate Language (IL) output 02/17/2026
- Arrays 01/14/2026
- bool (C# reference) 01/14/2026
- Built-in types (C# reference) 01/14/2026
- char (C# reference) 01/14/2026
- Collections 01/14/2026
- Default values of C# types (C# reference) 01/14/2026
- Enumeration types (C# reference) 01/14/2026
- Floating-point numeric types (C# reference) 01/14/2026
- Integral numeric types (C# reference) 01/14/2026
- Nullable reference types (C# reference) 05/15/2026
- Nullable value types (C# reference) 01/14/2026
- Built-in numeric conversions (C# reference) 01/14/2026
- Records (C# reference) 06/05/2026
- `ref` structure types (C# reference) 01/14/2026
- Built-in reference types (C# reference) 01/14/2026
- String operations: Pattern matching, performance, and span-based search 05/21/2026
- Structure types (C# reference) 01/14/2026
- Union types (C# reference) 08/14/2026
- Unmanaged types (C# reference) 01/14/2026
- Tuple types (C# reference) 01/14/2026
- Value types (C# reference) 03/20/2026
- void (C# reference) 01/14/2026
- Configure C# language version 01/16/2026
- abstract (C# Reference) 06/06/2026
- Access modifiers (C# reference) 01/21/2026
- Accessibility domain (C# reference) 01/21/2026
- Accessibility levels (C# reference) 01/21/2026
- The `add` contextual keyword (C# Reference) 01/21/2026
- ascending (C# Reference) 01/21/2026
- async (C# reference) 01/21/2026
- The base keyword 01/21/2026
- by (C# Reference) 01/21/2026
- class (C# Reference) 01/21/2026
- closed (C# Reference) 08/14/2026
- The const keyword 01/21/2026
- default (C# reference) 01/21/2026
- descending (C# Reference) 01/21/2026
- equals (C# Reference) 01/21/2026
- The `event` keyword (C# reference) 01/21/2026
- Extension declaration (C# Reference) 07/08/2026
- extern alias (C# Reference) 01/21/2026
- extern (C# Reference) 01/21/2026
- `field` - Field backed property declarations 01/21/2026
- The file modifier 01/21/2026
- from clause (C# Reference) 01/21/2026
- The `get` keyword 01/21/2026
- group clause (C# Reference) 01/21/2026
- `in` (Generic Modifier) (C# Reference) 01/21/2026
- `in` (C# reference) 01/21/2026
- C# keywords 06/05/2026
- The `init` keyword (C# Reference) 01/21/2026
- interface (C# Reference) 01/21/2026
- internal (C# reference) 01/21/2026
- into (C# Reference) 01/21/2026
- join clause (C# Reference) 01/21/2026
- `let` clause (C# Reference) 01/21/2026
- Method parameters and modifiers 01/22/2026
- The `namespace` keyword 01/22/2026
- new constraint (C# Reference) 01/22/2026
- new modifier (C# Reference) 01/22/2026
- new (C# reference) 01/22/2026
- null (C# Reference) 01/22/2026
- on (C# Reference) 01/22/2026
- orderby clause (C# Reference) 01/22/2026
- out (generic modifier) (C# Reference) 01/22/2026
- out (C# Reference) 01/22/2026
- override (C# reference) 01/22/2026
- Partial member (C# Reference) 01/22/2026
- Partial type (C# Reference) 01/22/2026
- private protected (C# Reference) 01/22/2026
- private (C# Reference) 01/22/2026
- protected internal (C# reference) 01/22/2026
- protected (C# Reference) 01/22/2026
- public (C# reference) 01/22/2026
- Query keywords (C# Reference) 01/22/2026
- readonly (C# reference) 01/22/2026
- The `ref` keyword 01/22/2026
- Reference types (C# reference) 01/22/2026
- The `remove` contextual keyword (C# Reference) 01/22/2026
- required modifier (C# Reference) 01/22/2026
- Restrictions on using accessibility levels (C# Reference) 01/22/2026
- safe (C# Reference) 09/11/2026
- sealed (C# Reference) 06/05/2026
- select clause (C# Reference) 01/22/2026
- The set keyword (C# Reference) 01/22/2026
- Statement keywords (C# Reference) 01/22/2026
- static (C# Reference) 01/22/2026
- The this keyword 01/22/2026
- unsafe (C# Reference) 09/10/2026
- The `using` directive 01/22/2026
- using (C# reference) 01/22/2026
- The `value` implicit parameter 10/30/2024
- virtual (C# Reference) 01/22/2026
- volatile (C# Reference) 01/22/2026
- when (C# reference) 01/22/2026
- where clause (C# Reference) 01/22/2026
- where (generic type constraint) (C# Reference) 01/22/2026
- `with` (C# reference) 02/06/2026
- C# language versioning 02/04/2026
- Addition operators - `+` and `+=` 01/20/2026
- Arithmetic operators (C# reference) 01/20/2026
- Assignment operators (C# reference) 01/20/2026
- await operator - asynchronously await for a task to complete 09/11/2026
- Bitwise and shift operators (C# reference) 01/20/2026
- Boolean logical operators - AND, OR, NOT, XOR 01/20/2026
- Collection expressions - C# language reference 08/14/2026
- Comparison operators (C# reference) 01/20/2026
- ?: operator - the ternary conditional operator 01/20/2026
- Deconstruction expression - Extract properties of fields from a tuple or other user-defined type 01/20/2026
- Default value expressions 01/20/2026
- delegate operator 01/20/2026
- Equality operators - test if two objects are equal or not 08/19/2026
- C# operators and expressions 01/20/2026
- The `is` operator (C# reference) 01/20/2026
- Lambda expressions and anonymous functions 01/20/2026
- Lambda expression (`=>`) operator defines a lambda expression 08/20/2026
- Member access operators and expressions - the dot, indexer, and invocation operators 01/20/2026
- nameof expression (C# reference) 01/20/2026
- :: operator - the namespace alias operator 01/20/2026
- new operator - The `new` operator creates a new instance of a type 01/20/2026
- `??` and `??=` operators - the null-coalescing operators 01/20/2026
- ! (null-forgiving) operator (C# reference) 01/20/2026
- Operator overloading - predefined unary, arithmetic, equality, and comparison operators 01/20/2026
- Pattern matching - the `is` and `switch` expressions, and operators `and`, `or`, and `not` in patterns 08/14/2026
- Pointer related operators - take the address of variables, dereference storage locations, and access memory locations 06/16/2026
- sizeof operator - determine the memory needs for a given type 06/29/2026
- stackalloc expression (C# reference) 06/16/2026
- - and -= operators - subtraction (minus) 01/20/2026
- `switch` expression - pattern matching expressions using the `switch` keyword 03/20/2026
- True and false operators 01/20/2026
- Type-testing operators and cast expressions - `is`, `as`, `typeof`, and casts 01/20/2026
- User-defined explicit and implicit conversion operators 01/20/2026
- The `with` expression - Nondestructive mutation creates a new object with modified properties 01/20/2026
- C# preprocessor directives 01/16/2026
- The checked and unchecked statements (C# reference) 01/16/2026
- Declaration statements 01/16/2026
- Exception-handling statements - `throw`, `try-catch`, `try-finally`, and `try-catch-finally` 01/16/2026
- fixed statement - pin a variable for pointer operations 06/16/2026
- Iteration statements - `for`, `foreach`, `do`, and `while` 01/16/2026
- Jump statements - `break`, `continue`, `return`, and `goto` 01/16/2026
- The lock statement - ensure exclusive access to a shared resource 01/16/2026
- Selection statements - `if`, `if-else`, and `switch` 01/16/2026
- using statement - ensure the correct use of disposable objects 01/16/2026
- yield statement - provide the next element 01/16/2026
- Code comments - `//` and `/*` - `*/` 01/14/2026
- Discard - A `_` acts as a placeholder for a variable 01/14/2026
- C# special characters 01/14/2026
- String interpolation using `$` 01/14/2026
- Raw string literal text - `"""` in string literals 01/30/2026
- Verbatim text - `@` in variables, attributes, and string literals 01/14/2026
- Unsafe code, pointer types, and function pointers 09/11/2026
- Example XML documentation comments 01/16/2026
- Generate XML API documentation comments 01/16/2026
- Recommended XML tags for C# documentation comments 09/10/2026
- Methods in C# 04/17/2025
- The updated .NET Core event pattern 03/11/2025
- Abstract and Sealed Classes and Class Members (C# Programming Guide) 07/20/2015
- Access modifiers (C# programming guide) 12/15/2025
- Anonymous types (C# Programming Guide) 04/10/2026
- Automatically implemented properties 11/18/2025
- Constants (C# Programming Guide) 07/20/2015
- Constructors (C# programming guide) 03/11/2025
- Extension members (C# Programming Guide) 11/20/2025
- Fields (C# Programming Guide) 05/25/2023
- Finalizers (C# Programming Guide) 08/20/2021
- How to create a new method for an enumeration (C# Programming Guide) 11/25/2025
- How to declare and use read write properties (C# Programming Guide) 07/29/2022
- How to define abstract properties (C# Programming Guide) 07/20/2015
- How to define constants in C# 07/20/2015
- How to implement a lightweight class with automatically implemented properties 07/29/2022
- How to implement and call a custom extension method (C# Programming Guide) 10/02/2024
- How to initialize a dictionary with a collection initializer (C# Programming Guide) 10/14/2025
- How to initialize objects by using an object initializer (C# Programming Guide) 12/20/2018
- How to override the ToString method (C# Programming Guide) 07/20/2015
- How to return subsets of element properties in a query (C# Programming Guide) 07/20/2015
- How to use implicitly typed local variables and arrays in a query expression (C# Programming Guide) 11/25/2025
- How to write a copy constructor (C# Programming Guide) 05/24/2023
- Implicitly typed local variables (C# Programming Guide) 07/20/2015
- Instance constructors (C# programming guide) 05/29/2024
- Interface Properties (C# Programming Guide) 08/20/2024
- Knowing When to Use Override and New Keywords (C# Programming Guide) 07/20/2015
- Local functions (C# Programming Guide) 11/22/2024
- Members (C# Programming Guide) 07/20/2015
- Methods (C# Programming Guide) 03/08/2021
- Named and Optional Arguments (C# Programming Guide) 10/10/2025
- Nested types (C# programming guide) 12/15/2025
- Object and collection initializers (C# programming guide) 02/04/2026
- Partial Classes and Members (C# Programming Guide) 11/18/2025
- Private Constructors (C# Programming Guide) 07/20/2015
- Properties (C# Programming Guide) 11/18/2025
- Restricting Accessor Accessibility (C# Programming Guide) 10/30/2024
- Static Classes and Static Class Members (C# Programming Guide) 10/13/2025
- Static Constructors (C# Programming Guide) 07/31/2024
- Use constructors (C# programming guide) 01/15/2025
- Using Properties (C# Programming Guide) 11/18/2025
- Versioning with the Override and New Keywords (C# Programming Guide) 07/20/2015
- Creating Variant Generic Interfaces 07/20/2015
- Covariance and Contravariance 07/20/2015
- Using Variance for Func and Action Generic Delegates 07/20/2015
- Using Variance in Delegates 07/20/2015
- Using Variance in Interfaces for Generic Collections 07/20/2015
- Variance in Delegates 07/20/2015
- Variance in Generic Interfaces 06/06/2019
- Programming concepts 10/10/2025
- Iterators 08/14/2018
- Delegates with Named vs. Anonymous Methods (C# Programming Guide) 12/20/2024
- How to combine delegates (Multicast Delegates) (C# Programming Guide) 03/05/2026
- How to declare, instantiate, and use a Delegate (C# Programming Guide) 12/20/2024
- Delegates (C# Programming Guide) 03/11/2025
- Using Delegates (C# Programming Guide) 12/20/2024
- How to implement custom event accessors (C# Programming Guide) 07/20/2015
- How to implement interface events (C# Programming Guide) 07/20/2015
- How to raise base class events in derived classes (C# Programming Guide) 07/20/2015
- How to subscribe to and unsubscribe from events (C# Programming Guide) 07/20/2015
- Events (C# Programming Guide) 03/11/2025
- Constraints on type parameters (C# Programming Guide) 11/25/2025
- Differences Between C++ Templates and C# Generics (C# Programming Guide) 07/20/2015
- Generic Classes (C# Programming Guide) 07/20/2015
- Generic Delegates (C# Programming Guide) 07/20/2015
- Generic Interfaces (C# Programming Guide) 11/18/2025
- Generic methods (C# programming guide) 07/20/2015
- Generic type parameters (C# Programming Guide) 07/20/2015
- Generics and Arrays (C# Programming Guide) 07/20/2015
- Generics in the runtime (C# programming guide) 07/20/2015
- Comparison Between Properties and Indexers (C# Programming Guide) 07/20/2015
- Indexers 08/20/2024
- Indexers in Interfaces (C# Programming Guide) 08/20/2024
- Using indexers (C# Programming Guide) 08/20/2024
- Explicit Interface Implementation (C# Programming Guide) 03/24/2021
- How to explicitly implement interface members (C# Programming Guide) 07/20/2015
- How to explicitly implement members of two interfaces (C# Programming Guide) 07/20/2015
- How to determine whether a string represents a numeric value (C# Programming Guide) 07/20/2015
- Strings and string literals 11/18/2025
- Boxing and Unboxing (C# Programming Guide) 10/13/2025
- Casting and type conversions (C# Programming Guide) 02/05/2025
- How to convert a byte array to an int (C# Programming Guide) 07/20/2015
- How to convert a string to a number (C# Programming Guide) 10/31/2024
- How to convert between hexadecimal strings and numeric types (C# Programming Guide) 07/20/2015
- Feature specifications 04/08/2026
- C# standard specification 08/19/2026
- Versioning in C# 09/17/2024
- Learn about any breaking changes in the C# compiler 03/21/2022
- What's new in C# 12 03/19/2024
- What's new in C# 13 11/18/2025
- What's new in C# 14 11/18/2025
- What's new in C# 15 09/11/2026
- The history of C# 11/18/2025
- Relationships between language features and library types 10/26/2023
- Tutorial: Explore C# closed hierarchies 07/03/2026
- Tutorial: Create compound assignment operators 11/14/2025
- Tutorial: Explore extension members in C# 14 and C# 15 07/15/2026
- Declare primary constructors for classes and structs 03/18/2025
- Tutorial: Explore C# union types 07/02/2026
- Version and update considerations for C# developers 06/26/2023