Version of C#


C# (pronounced "see sharp") is a multi-paradigm programming language encompassing imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines. It was developed by Microsoft within the .NET initiative and later approved as a standard by Ecma (ECMA-334) and ISO (ISO/IEC 23270). C# is one of the programming languages designed for the Common Language Infrastructure.

C# is intended to be a simple, modern, general-purpose, object-oriented programming language. Its development team is led by Anders Hejlsberg. The most recent version is C# 4.0, which was released on April 12, 2010.
Which version of C# to use?


For a beginner it is always a daunting task to decide on which version to use and which development tool to use. The table here shows clearly the available versions of C# and the corresponding Visual Studio version to use.

C# 2.0 C# 3.0 C# 4.0 C# 5.0 (planned)
Features
added
  • Generics
  • Partial types
  • Anonymous methods
  • Iterators
  • Nullable types
  • Implicitly typed local variables
  • Object and collection initializers
  • Auto-Implemented properties
  • Anonymous types
  • Extension methods
  • Query expressions
  • Lambda expressions
  • Expression trees
  • Dynamic binding
  • Named and optional arguments
  • Generic co- and contravariance
  • Asynchronous methods
  • Compiler As a Service
Date November 2005 November 2007 April 2010
Visual Studio Visual Studio 2005 Visual Studio 2008 Visual Studio 2010
.NET Framewrork .NET Framework 2.0 .NET Framework 3.5 .NET Framework 4

Design Goals of C#

  • C# language is intended to be a simple, modern, general-purpose, object-oriented programming language.
  • The language, and implementations thereof, should provide support for software engineering principles such as strong type checking, array bounds checking, detection of attempts to use uninitialized variables, and automatic garbage collection. Software robustness, durability, and programmer productivity are important.
  • The language is intended for use in developing software components suitable for deployment in distributed environments.
  • Source code portability is very important, as is programmer portability, especially for those programmers already familiar with C and C++.
  • Support for internationalization is very important.
  • C# is intended to be suitable for writing applications for both hosted and embedded systems, ranging from the very large that use sophisticated operating systems, down to the very small having dedicated functions.
  • Although C# applications are intended to be economical with regard to memory and processing power requirements, the language was not intended to compete directly on performance and size with C or assembly language.