C# was developed in the year 2002 with the .NET Framework 1.0 and has since continued to develop with enhanced features and performance.
C# is a general-purpose, contemporary, and object-oriented programming language. It was created by Microsoft as part of the.NET program and was authorized by the ECMA (European Computer Manufacturers Association) and the ISO (International Standards Organization).
Table of Contents
.NET Framework 1.0 introduced C# in 2002 and it has since evolved significantly. While writing this article, C# 9.0 is the most recent version.
C# 9.0 was released in September 2020 along with .NET 5 platform. If you wish to download .NET 5.0 and try out the features check it from here, download .NET 5
We are eagerly anticipating the release of the language’s newest version, too. There has not yet been an official release date announced for C# 10.0, though it is expected to launch alongside the .NET 6 in November.
Few expected core features in C# version 10 are
Required Properties to make a property required at the time of defining a class
Null Parameter Checking wherein the code automatically verifies whether the param Object is null
Global Usings to define global usings for the whole project for all common usings
File Namespaces enable defining a namespace of the class on the file level
Field Keyword permit the caller to modify the members while construction is in progress
This table shows the noteworthy features that were introduced in each new release of C#, which will help as a quick reference guide.
C# Version | .NET Framework Version | Visual Studio Version | Core Features |
---|---|---|---|
C# 1.0 | .NET Framework 1.0 | Visual Studio 2002 | Initial Release. Basic Object-Oriented Programming features such as, Classes Structs Properties Events Interfaces Delegates Statements Expressions Attributes |
C# 1.2 | .NET Framework 1.1 | Visual Studio 2003 | Minor enhancements on C# 1.0 |
C# 2.0 | .NET Framework 2.0 | Visual Studio 2005 | Partial classes Generics Anonymous methods Iterators Nullable types Properties with Private setters Delegates with Method group conversions Covariance and Contra-variance Static classes |
C# 3.0 | .NET Framework 3.0\3.5 | Visual Studio 2008 | Implicitly typed local variables Auto-Implemented properties Object Initializers Collection initializers Anonymous types Extension methods Query expressions Lambda expressions Expression trees Partial Methods |
C# 4.0 | .NET Framework 4.0 | Visual Studio 2010 | Dynamic keyword introduced Named Parameters & optional arguments Generic covariant and contravariant Embedded interop types |
C# 5.0 | .NET Framework 4.5 | Visual Studio 2012/2013 | Asynchronous members Caller information attributes |
C# 6.0 | .NET Framework 4.6 | Visual Studio 2013/2015 | Expression Bodied Methods Auto-property initializer name of Expression Primary constructor Await in the catch block Exception Filter String Interpolation |
C# 7.0 | .NET Core 2.0 | Visual Studio 2017 | Tuples Out variables Discards Pattern Matching Local functions Generalized async return types Digital Separators Binary literals Ref returns and locals |
C# 7.1 | .NET Core | Visual Studio 2017 | Default literal expression Async main Inferred Tuple element names |
C# 7.2 | .NET Core | Visual Studio 2017 | Non-trailing named argument Private protected access modifier Leading underscores in numeric literals |
C# 7.3 | .NET Core | Visual Studio 2018 | Using additional generic constraints Reassigning ref local variables Accessing fixed fields without pinning |
C# 8.0 | .NET Core 3.0 | Visual Studio 2019 | Readonly members Default interface methods Pattern matching enhancements Using declarations Static local functions Readonly struct members Default interface members Asynchronous streams Switch expressions Indices and ranges Disposable ref struct Nullable reference types Null coalescing assignment Unmanaged constructed types |
C# 9.0 | .NET 5 | Visual Studio 2019 | Immutable representation of data shapes New Record types Init only setters Top-level statement Functions pointers Module Initializers Covariant return types. Native Sized integers |
C# 10.0 | .NET 6 | Visual studio 2022 | Null Parameter Checking Required Properties Field Keyword Global Usings File Namespaces Const interpolated strings. Record types can seal ToString() Allows both declaration and assignment in the same deconstruction. AsyncMethodBuilder attribute |
C# 10.0, which was released with . NET 6.0 in 2021, is the most recent version of the language
C# 7.3
C# 7.0
.NET Framework 4.8 may be the last version of .NET Framework. There are no plans to remove. NET Framework from the Windows operating system.
In this article, we had a brief overview of the C# version history, and the features included in each version of C#. This history of C# will be useful for quick reference. Hope you find this article helpful. Leave your valuable feedback below.
OWIN (Open Web Interface for .NET) is an interface between web servers and web applications…
JSON (JavaScript Object Notation) is a commonly used data exchange format that facilitates data exchange…
The CAP theorem is also known as Brewer's theorem. What is CAP Theorem? CAP theorem…
Some of the Key factors that need to consider while architecting or designing a software…
The Interface Segregation Principle (ISP) is one of the SOLID principles of object-oriented design. The…
The Single Responsibility Principle (SRP), also known as the Singularity Principle, is a software design…
View Comments