C# Version History

C# (pronounced "C sharp") is a modern, general-purpose programming language developed by Microsoft. It was created by Anders Hejlsberg and his team at Microsoft and was first released in 2000 as part of the Microsoft .NET framework.

C# founder Anders Hejlsberg

Here is a detailed overview of the history of C#:

  1. Development of C#:
    In the late 1990s, Microsoft recognized the need for a new programming language that would combine the power and efficiency of C++ with the simplicity and ease of use of Visual Basic.
    Anders Hejlsberg, known for his work on Turbo Pascal and Delphi, led the development of C# and the team aimed to create a language that was type-safe, object-oriented, and versatile.
  2. Release of C# 1.0 (2000):
    C# 1.0 was released in 2000 as part of the initial release of the Microsoft .NET Framework.
    It provided core features of the language, including classes, interfaces, properties, events, exception handling, and garbage collection.
    C# 1.0 targeted the Common Language Runtime (CLR) and allowed developers to build applications for Windows using the .NET platform.
  3. Evolution and Major Releases:
    C# has since undergone several major releases, with each version introducing new features and improvements to the language.
    Some notable versions and their key features include:

    C# 2.0 (2005): Introduced generics, anonymous methods, and nullable value types.

    C# 3.0 (2007): Introduced LINQ (Language Integrated Query), automatic properties, extension methods, and lambda expressions.

    C# 4.0 (2010): Introduced dynamic typing, named and optional parameters, and improved COM interoperability.

    C# 5.0 (2012): Introduced async/await keywords for asynchronous programming.

    C# 6.0 (2015): Introduced string interpolation, null-conditional operator, and static using directives.

    C# 7.0 (2017): Introduced pattern matching, tuples, local functions, and more.

    C# 8.0 (2019): Introduced nullable reference types, async streams, ranges and indices, and switch expressions.

    C# 9.0 (2020): C# 9 was released with .NET 5. It's the default language version for any assembly that targets the .NET 5 release. It introduced record types, improved pattern matching, init-only properties, and more.

    C# 10 (2021): C# 10 adds the following features and enhancements to the C# language:
    • Record structs
    • Improvements of structure types
    • Interpolated string handlers
    • global using directives
    • File-scoped namespace declaration
    • Extended property patterns
    • Improvements on lambda expressions
    • Allow const interpolated strings
    • Record types can seal ToString()
    • Improved definite assignment
    • Allow both assignment and declaration in the same deconstruction
    • Allow AsyncMethodBuilder attribute on methods
    • CallerArgumentExpression attribute
    • Enhanced #line pragma

    C# 11 (2022): The following features were added in C# 11:
    • Raw string literals
    • Generic math support
    • Generic attributes
    • UTF-8 string literals
    • Newlines in string interpolation expressions
    • List patterns
    • File-local types
    • Required members
    • Auto-default structs
    • Pattern match Span on a constant string
    • Extended nameof scope
    • Numeric IntPtr
    • ref fields and scoped ref
    • Improved method group conversion to delegate
    • Warning wave 7

  4. Adoption and Cross-Platform Support: C# gained popularity due to its integration with the .NET framework, which provided a rich set of libraries for building Windows applications. In recent years, Microsoft has made efforts to expand the reach of C# beyond Windows by open-sourcing the language and introducing cross-platform frameworks like .NET Core and Xamarin. With the introduction of .NET Core, C# can now be used to build applications that run on various platforms, including Windows, macOS, and Linux.

C# has become one of the most widely used programming languages, particularly in the Microsoft ecosystem, and is used for a wide range of applications, including desktop software, web development, mobile app development, game development, and more. Its evolution and continuous updates have made it a powerful and versatile language for modern software development.