C#, le Java de Microsoft

Le langage C# est plus facile d'emploi que C++, mais il requiert le runtime de .NET pour faire tourner les programmes. Vous pouvez convertir votre code C++ sans difficulté.
Il reprend la plupart des principes de Java, avec une plus nette orientation objet, un garbage collector.

C# a été conçu par Microsoft pour sa nouvelle plateforme .NET comme alternative à Java, s'inspirant (comme lui) de C++, de Java et plusieurs autres langages.

C# n'est pas le seul langage utilisable sur .NET, de nombreux autres sont également implémentés. Cela inclut C++, Pascal, Python, Java, et de nombreux autres, même Cobol et Fortran.
Vous pouvez mixer du code C# avec du code d'autres langages sur .NET, ils fonctionnent ensemble en partageant les objets.

Un avenir incertain

L'avenir du langage n'est pas parfaitement défini. On a pu penser que son implémentation dans Silverlight, considéré comme une plateforme d'avenir pour le Web et les mobiles en ferait un des langages essentiels pour la programmation du futur. Puis Microsoft avec Metro, nouvelle plateforme pour Windows 8, s'est tourné vers HTML 5 et JavaScript (à coté de XAML et un système à venir).
C# ne semble pas être le langage considéré par Microsoft pour ses applications immersives. Il reste au moins un langage d'applications de bureau classiques et coté-serveur.

La version 5 de JavaScript comportera des classes et facilitera ainsi la réalisation d'applications importantes, ce pourquoi il pourra remplacer un langage d'applications.

Caractéristiques et différences avec C++

C# se compile en langage intermediaire, le CIL (Common Intermediate Language), qui est exécuté sur une machine virtuelle, le CLR (Common Language Runtime). Celle-ci est l'implémentation de la CLI, l'infrastructure de langage commune.

Une différence importante avec Java est que chaque classe Java est stockée dans un fichier séparé, contrainte qui n'existe pas pour C#.

Exemple de code

Afficher les caractères de deux textes concaténés.

 string s = "demo" + "suffixe";
 foreach (char c in s)
 { 
   System.Console.WriteLine(c); 
 } 

Outils et documents

Langages de programmation AspectJ - Basic - C - CIL - C++ - C++11 - C# - Dart - Eiffel - Go - Java - JavaScript - JavaFX Script - Pascal - PHP - Python - QML - Rexx - Ruby - Scala - Scriptol - Tcl - HTML - XML - XAML - XUL - SQL