C# Versions
The history of C# from MS
C#
version 1.0
When you go back and look, C# version 1.0, released with Visual Studio .NET 2002. The major features of C# 1.0 included:
C# version 1.2
C#
version 1.2 shipped with Visual Studio .NET 2003. It contained a few
small enhancements to the language. Most notable is that starting
with this version, the code generated in a foreach
loop
called Dispose on
an IEnumerator when
that IEnumerator implemented IDisposable.
C# version 2.0
Now things start to get interesting. Let's take a look at some major features of C# 2.0, released in 2005, along with Visual Studio 2005:
Other C# 2.0 features added capabilities to existing features:
Getter/setter separate accessibility
Method group conversions (delegates)
Static classes
Delegate inference
C# version 3.0
C# version 3.0 came in late 2007, along with Visual Studio 2008, though the full boat of language features would actually come with .NET Framework version 3.5. This version marked a major change in the growth of C#. It established C# as a truly formidable programming language. Let's take a look at some major features in this version:
- Auto-implemented properties
- Anonymous types
- Query expressions
- Lambda expressions
- Expression trees
- Extension methods
- Implicitly typed local variables
- Partial methods
- Object and collection initializers
C# version 4.0
C# version 4.0, released with Visual Studio 2010. The next version did introduce some interesting new features:
C# version 5.0
C#
version 5.0, released with Visual Studio 2012, was a focused version
of the language: the async
and await
model
for asynchronous programming. Here is the major features list:
See Also,
C# version 6.0
With versions 3.0 and 5.0, C# had added major new features in an object-oriented language. With version 6.0, released with Visual Studio 2015. Here are some of them:
- Static imports
- Exception filters
- Auto-property initializers
- Expression bodied members
- Null propagator
- String interpolation
- nameof operator
Other new features include,
- Index initializers
- Await in catch/finally blocks
- Default values for getter-only properties
C# version 7.0
C# version 7.0 was released with Visual Studio 2017. Here are some of the new features:
- Out variables
- Tuples and deconstruction
- Pattern matching
- Local functions
- Expanded expression bodied members
- Ref locals and returns
Other features included:
C# version 7.1
C# started releasing point releases with C# 7.1. This version added the languageversion selection configuration element, three new language features, and new compiler behavior.
The new language features in this release are:
-
The entry point for an application can have the
async
modifier.
-
You can use default literal expressions in default value expressions when the target type can be inferred.
-
The names of tuple elements can be inferred from tuple initialization in many cases.
Pattern matching on generic type parameters
You can use pattern match expressions on variables whose type is a generic type parameter.
Finally,
the compiler has two options -refout
and -refonly
that
control reference
assembly generation.
C# version 7.2
C# 7.2 added several small language features,
Techniques for writing safe efficient code
A combination of syntax improvements that enable working with value types using reference semantics.
-
Named arguments can be followed by positional arguments.
Leading underscores in numeric literals
Numeric literals can now have leading underscores before any printed digits.
private protected
access modifierThe
private protected
access modifier enables access for derived classes in the same assembly.
-
The result of a conditional expression (
?:
) can now be a reference.
C# version 7.3
There are two main themes to the C# 7.3 release. The following new features support the theme of better performance for safe code:
- You can access fixed fields without pinning.
- You
can reassign
ref
local variables. - You
can use initializers on
stackalloc
arrays. - You
can use
fixed
statements with any type that supports a pattern. - You can use additional generic constraints.
The following enhancements were made to existing features,
You can test
==
and!=
with tuple types.You can use expression variables in more locations.
You may attach attributes to the backing field of auto-implemented properties.
Method resolution when arguments differ by
in
has been improved.Overload resolution now has fewer ambiguous cases.
The new compiler options are,
-publicsign
to enable Open Source Software (OSS) signing of assemblies.-pathmap
to provide a mapping for source directories.
What's new in C# 8.0
04/07/2020
C# 8.0 adds the following features and enhancements to the C# language,
C# 8.0 is supported on .NET Core 3.x and .NET Standard 2.1. For more information, see C#language versioning.
04/07/2021
C# 9.0 adds the following features and enhancements to the C# language:
C# 9.0 is supported on .NET 5. For more information, see C#language versioning.
No comments:
Post a Comment