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