C#
Définition
C# (prononcé « C sharp ») est un langage de programmation moderne et multi-paradigme développé par Microsoft.
- Licence : Standard ECMA/ISO ; l’implémentation de Microsoft (Roslyn) est sous licence MIT
- Runtime : .NET (multiplateforme, open-source) / .NET Framework (Windows uniquement)
- Créateur : Anders Hejlsberg (a également créé Turbo Pascal, Delphi)
- Première publication : 2002 avec .NET Framework 1.0
Fonctionnalités du langage
- Système de types : Typage statique avec inférence de types (var)
- Garbage collection : Gestion automatique de la mémoire
- LINQ : Requêtes intégrées au langage pour l’accès aux bases de données et aux sources de données
- Async/await : Support natif de la programmation asynchrone
- Délégués et événements : Pointeurs de fonctions typés
- Propriétés, indexeurs, attributs : Support riche des membres de classe
Versions majeures
|| Version | Année | Fonctionnalités clés | ||———|——|————-| || C# 1.0 | 2002 | Fonctionnalités de base du langage | || C# 2.0 | 2005 | Génériques, classes partielles, types nullable | || C# 3.0 | 2007 | LINQ, expressions lambda, arbres d’expressions | || C# 4.0 | 2010 | Typage dynamique, paramètres optionnels | || C# 5.0 | 2012 | async/await | || C# 6.0 | 2015 | Opérateurs conditionnels null, instructions using | || C# 7.0-7.3 | 2017 | Tuples, appariement de motifs, références ref | || C# 8.0-9.0 | 2019-2020 | Types de référence nullable, records, motifs | || C# 10-13 | 2021-2024 | Espaces de noms à portée de fichier, records, chaînes brutes, global-using |
Runtime : .NET
|| Composant | Description | ||———–|————-| || .NET Core / .NET 5+ | Multiplateforme, open-source, plateforme unifiée | || .NET Framework | Windows uniquement, hérité | || Mono | Implémentation open-source de .NET pour mobile et moteurs de jeux | || Roslyn | Plateforme de compilation C# open-source (licence MIT) |
Cas d’utilisation
- Applications desktop d’entreprise (WPF, WinForms)
- Applications web (ASP.NET Core)
- Développement de jeux (moteur Unity)
- Applications mobiles (Xamarin, .NET MAUI)
- Services cloud (intégration Azure)
Comparaison avec les langages apparentés
- vs Java ; Java dispose d’un écosystème multiplateforme plus vaste
- vs Python
- Documentation C# de Microsoft
- Standard ECMA-334 du langage C#