| Introduced In | Feature Summary | Link |
|---|---|---|
| C# 3.0 Features | ||
| 3.0 | Auto Implemented Properties | MS Docs |
| 3.0 | Anonymous Types | MS Docs |
| 3.0 | Query Expressions | MS Docs |
| 3.0 | Lambda Expressions | MS Docs |
| 3.0 | Expression Trees | MS Docs |
| 3.0 | Implicitly Types Local Variables | MS Docs |
| 3.0 | Partial Methods | MS Docs |
| 3.0 | Object and Collection Initializers | MS Docs |
| C# 4.0 Features | ||
| 4.0 | Dynamically Typed Variables | MS Docs |
| 4.0 | Named and Optional Arguments | MS Docs |
| 4.0 | Covariance and Contravariance in Generics | MS Docs |
| 4.0 | Embedded Interop Types | MS Docs |
| C# 5.0 Features | ||
| 5.0 | Asynchronous Members | MS Docs |
| 5.0 | Caller Info Attributes | MS Docs |
| C# 6.0 Features | ||
| 6.0 | Read-Only Auto-properties | MS Docs |
| 6.0 | Auto-Property Initializers | MS Docs |
| 6.0 | Expression-Bodied Function Members | MS Docs |
| 6.0 | using static | MS Docs |
| 6.0 | Null-Conditional Operators | MS Docs |
| 6.0 | String Interpolation | MS Docs |
| 6.0 | Exception Filters | MS Docs |
| 6.0 | nameof Expressions | MS Docs |
| 6.0 | await in catch and finally blocks | MS Docs |
| 6.0 | Index Initializers | MS Docs |
| 6.0 | Use Add() Extension Method in Collection Initializers | MS Docs |
| 6.0 | Improved Overload Resolution in Lambda Expressions | MS Docs |
| 6.0 | Deterministic Compiler Output Option | MS Docs |
| C# 7.0 Features | ||
| 7.0 | Inline Declaration of out Variables | MS Docs |
| 7.0 | Tuples | MS Docs |
| 7.0 | Discards | MS Docs |
| 7.0 | Pattern Matching in is Expressions and switch Statements | MS Docs |
| 7.0 | Reference Variables in Locals and Returns | MS Docs |
| 7.0 | Local Functions | MS Docs |
| 7.0 | Expression-Bodied Contructors, Finalizers, and Accessors | MS Docs |
| 7.0 | Throw Expressions | MS Docs |
| 7.0 | Generalized Return Types for Async Methods | MS Docs |
| 7.0 | Binary Numeric Literals | MS Docs |
| 7.0 | Digit Separators in Numeric Literals | MS Docs |
| C# 7.1 Features | ||
| 7.1 | Asynchronous Main Methods | MS Docs |
| 7.1 | Default Literal Expressions | MS Docs |
| 7.1 | Inferred Tuple Element Names | MS Docs |
| 7.1 | Reference Assembly Generation | MS Docs |
| C# 7.2 Features | ||
| 7.2 | Reference Semantics with Value Types | MS Docs |
| 7.2 | Non-Trailing Named Arguments | MS Docs |
| 7.2 | Leading Underscores in Numeric Literals | MS Docs |
| 7.2 | private protected Access Modifier | MS Docs |
| C# 7.3 Features | ||
| 7.3 | More Performant Safe Code | MS Docs |
| 7.3 | Equality and Inequality Tests in Tuples | MS Docs |
| 7.3 | Extended Expression Variables in Initializers | MS Docs |
| 7.3 | More Improvements to Overload Candidates | MS Docs |
| 7.3 | Compiler Option to Sign an Assembly Using a Public Key | MS Docs |
| 7.3 | Mapped Source Paths Compiler Option | MS Docs |