The C# programming language was designed by Anders Hejlsberg
from Microsoft in 2000. C# (pronounced "C sharp") is a modern, object-oriented programming language designed by Microsoft
for building modern software applications as Windows applications, web applications,
Distributed applications, Web service applications, Database applications and other types of software.
C# has its roots in the C family of languages and will be immediately
familiar to C, C++, Java, and JavaScript programmers. C# was first introduced in
2000 as part of the .NET Framework and has since evolved into a powerful and
versatile language.
Why Use C#?
- It is one of the most popular programming language in the world.
- It is easy to learn and simple to use
- It has a huge community support
- C# is an object oriented language which gives a clear structure to
programs and allows code to be reused, lowering development costs
- As C# is close to C, C++ and Java, it makes it easy for programmers to
switch to C# or vice versa
Features of C# Language
There are some important features of C#.
- Object-oriented programming - It is an object-oriented
language, which means that it focuses on creating objects that represent
real-world entities. This makes it easier to write code that is more
modular, reusable, and easier to maintain.
- Strong typing - It is a strongly typed language, which
means that variables must be declared with specific data types and cannot be
changed later. This helps prevent common coding mistakes and makes it easier
to debug code.
- Automatic memory management - It uses a garbage
collector to automatically manage memory, which helps prevent memory leaks
and other errors that can occur when managing memory manually.
- LINQ (Language Integrated Query) - It includes a
powerful feature called LINQ, which allows developers to query data from
various sources (such as databases and XML files) using a unified syntax.
- Asynchronous programming - it supports asynchronous
programming, which allows multiple tasks to be executed simultaneously
without blocking the main thread of execution. This can improve the
performance and responsiveness of applications.
- Delegates and events - It includes support for
delegates and events, which are powerful mechanisms for handling events and
callbacks in code.
- Exception handling - It includes a robust exception
handling system, which makes it easier to handle runtime errors and recover
from unexpected situations.
- Cross-platform compatibility - It is a cross-platform
language, which means that it can be used to build applications that run on
a variety of platforms, including Windows, Linux, and macOS.
- Structured Programming Language - It is a structured
programming language. So we can break the program into parts using
functions. So, it is easy to understand and modify for programmers.
C# Version History
You can also read more about C# Version history from microsoft site -
The version history of C#
Version
|
.NET Framework
|
Visual Studio
|
Important Features
|
C# 1.0
|
.NET Framework 1.0/1.1
|
Visual Studio .NET 2002
|
- Classes
- Structs
- Interfaces
- Events
|
C# 2.0
|
.NET Framework 2.0
|
Visual Studio 2005
|
-
Generics
-
Partial types
-
Anonymous methods
-
Iterators
-
Nullable types
-
Private setters (properties)
-
Method group conversions (delegates)
-
Covariance and Contra-variance
-
Static classes
|
C# 3.0
|
.NET Framework 3.0\3.5
|
Visual Studio 2008
|
-
Implicitly typed local variables
-
Object and collection initializers
-
Auto-Implemented properties
-
Anonymous types
-
Extension methods
-
Query expressions
-
Lambda expressions
-
Expression trees
-
Partial Methods
|
C# 4.0
|
.NET Framework 4.0
|
Visual Studio 2010
|
-
Dynamic binding (late binding)
-
Named and optional arguments
-
Generic co- and contravariance
-
Embedded interop types
|
C# 5.0
|
.NET Framework 4.5
|
Visual Studio 2012/2013
|
-
Async features
-
Caller information
|
C# 6.0
|
.NET Framework 4.6
|
Visual Studio 2013/2015
|
-
Expression Bodied Methods
-
Auto-property initializer
- nameof Expression
- Primary constructor
- Await in catch block
- Exception Filter
- String Interpolation
|
C# 7.0
|
.NET Core 2.0
|
Visual Studio 2017
|
-
out variables
-
Tuples
- Discards
- Pattern Matching
- Local functions
- Generalized async return types
|
C# 8.0
|
.NET Core 3.0
|
Visual Studio 2019
|
-
Readonly members
-
Default interface methods
- Using declarations
- Static local functions
- Disposable ref structs
- Nullable reference types
|
C# 9.0
|
.NET 5.0
|
Visual Studio 2019
|
- Records
-
Init-only properties
- Top-level statements
- Init accessors and readonly fields
- With-expressions
- Value-based equality
|
C# 10.0
|
.NET 6.0
|
Visual Studio 2022
|
- Record structs
-
Global using directives
- File-scoped namespace declaration
- Extended Proptery Patterns
- Null Parameter Checking
- Constant interpolated strings
|
C# 11.0
|
.NET 7.0
|
Visual Studio 2022
|
- Raw string literals
-
Generic math support
- Generic attributes
- UTF-8 string literals
- Newlines in string interpolation expressions
|
Next