Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. C Sharp — Wikipédia
C Sharp — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Titre correct : « C# ».

En raison de limitations techniques, la typographie souhaitable du titre n’a pu être restituée correctement.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir Sharp et .cs.

C#
Logo.
Code en C# retournant à la console : "Hello World!"
Code en C# retournant à la console : "Hello World!"

Date de première version 2001Voir et modifier les données sur Wikidata
Paradigme Structuré, impératif, orienté objet
Auteur Microsoft
Dernière version 14.0 (9 juin 2025)[1]Voir et modifier les données sur Wikidata
Typage Statique, fort, nominatif
Dialectes 1.0, 1.1, 1.2, 2.0 (ECMA), 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 7.1, 7.2, 7.3, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0
Influencé par C++, Java
A influencé Swift, Vala, F#, Kotlin, TypeScript
Implémentations Microsoft .NET, Mono, DotGNU
Écrit en C#Voir et modifier les données sur Wikidata
Système d'exploitation Multiplate-forme
Site web docs.microsoft.com/en-us/dotnet/csharpVoir et modifier les données sur Wikidata
Extension de fichier .cs
modifier 

C# (C sharp [siː.ʃɑːp] en anglais britannique) est un langage de programmation orientée objet, commercialisé par Microsoft depuis 2002[2] et destiné à développer sur la plateforme Microsoft .NET, au même titre que d’autres langages liés à cette plateforme (ex. : VB .NET, J#, etc.).

C# est dérivé du C++ et très proche du Java dont il reprend la syntaxe générale ainsi que les concepts, y ajoutant des notions telles que la surcharge des opérateurs, les indexeurs (en) et les délégués. Il est utilisé notamment pour développer des applications web sur la plateforme ASP.NET, ainsi que des jeux vidéo avec les moteurs de jeux Unity et Godot[3].

Présentation

[modifier | modifier le code]

C# est un langage de programmation orientée objet, fortement typé, dérivé de C et de C++, ressemblant au langage Java[2]. Il est utilisé pour développer des applications web, ainsi que des applications de bureau, des services web, des commandes, des widgets ou des bibliothèques de classes[2]. En C#, une application est un lot de classes où une des classes comporte une méthode Main, comme cela se fait en Java[2].

C# est destiné à développer sur la plateforme .NET, une pile technologique créée par Microsoft pour succéder à COM.

Les exécutables en C# sont subdivisés en assemblies, en namespaces, en classes et en membres de classe[4]. Un assembly est la forme compilée, qui peut être un programme (un exécutable) ou une bibliothèque de classes (une dll). Un assembly contient le code exécutable en MSIL, ainsi que les symboles. Le code MSIL est traduit en langage machine au moment de l'exécution par la fonction just-in-time de la plateforme .NET[4].

Plateforme .NET

[modifier | modifier le code]

C# est destiné à développer sur la plateforme .NET. Le cœur de cette pile technologique est le framework .NET, composé de[2] :

  • les environnements ASP.NET et Winforms (qui servent à exécuter respectivement des applications web et de bureau) conçus pour la plateforme .NET[2] ;
  • une bibliothèque de classes qui permet de manipuler des fichiers, manipuler des tableaux ou des structures en arbres, accéder à Internet, créer des interfaces graphiques, accéder à des bases de données, accéder au registre Windows et beaucoup d'autres choses. La plupart des fonctionnalités sont offertes par des classes de l'espace de noms System[2] ;
  • le Common Language Runtime (abr. CLR) est le runtime utilisé par les langages de la plateforme .NET (C#, Visual Basic .NET, J#, etc.), les services fournis par la CLR sont le lancement et l'exécution de programmes, le ramasse-miettes et la gestion d'exceptions. Un programme pour la plateforme .NET est tout d'abord compilé en une forme intermédiaire, le MSIL, puis ce code MSIL est transformé en code machine qui sera exécuté par la CLR. Ce code machine est appelé managed code parce que son exécution est sous le contrôle de la CLR[2].

Un autre produit de la plateforme .NET est l'environnement de développement Visual Studio .NET, outil généralement utilisé pour programmer en C#[2].

Caractéristiques

[modifier | modifier le code]

C# est un langage dérivé du C++, il apporte un typage sûr, ainsi que les possibilités d'encapsulation, d'héritage et de polymorphisme des langages orientés objet[2]. En C# tous les types sont des objets[2]. Le langage comporte un ramasse-miettes et un système de gestion d'exceptions[2].

Le typage sûr signifie notamment que les opérations suivantes sont refusées : utilisation de variable non initialisée, tentative d'accéder au-delà des limites d'un tableau, conversions de type dont les résultats ne sont pas prévisibles, dépassement des limites lors d'opérations arithmétiques[2].

Beaucoup de possibilités de Java se retrouvent dans C# et il y a une forte ressemblance entre un code écrit en C# et le code équivalent en Java[2].

En C# les variables peuvent être d'un type valeur ou d'un type référence. Les types valeur sont les types primitifs, les énumérations, les struct et les types nullable[4]. Les types référence sont les classes, les interfaces, les tableaux et les delegate[4].

Types primitifs

Les types primitifs sont sbyte, short, int, long, byte, ushort, uint, ulong, char, float, double, decimal et bool[4].

class

Les constructions les plus fondamentales du langage C# sont les classes. Celles-ci peuvent contenir des constantes, des champs, des propriétés, des indexeurs, des méthodes, des événements, des opérateurs, des constructeurs, des destructeurs ou des sous-classes[4]. Les classes élémentaires sont string et object[4].

struct

Les struct sont similaires aux classes, mais ce sont des types valeurs et ils ne peuvent pas être hérités[4].

delegate

Un delegate est une référence à une méthode qui comporte certains paramètres. Les delegates permettent d'assigner des méthodes à des variables et les passer en paramètre[4].

enum

Un type énuméré est un type valeur qui comporte un lot de constantes. Chaque type énuméré a un type sous-jacent : un type primitif déterminé en fonction des valeurs des constantes.

type nullable

Les nullable sont des types primitifs qui peuvent en plus avoir la valeur null[4]. Chaque type primitif T a un type nullable associé T?. Par exemple une variable de type int? peut contenir un int ou null[4].

Syntaxe

[modifier | modifier le code]

Exemple de code :

using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Salut tout le monde!");
    }
}
Mots clé

Les mots clé de C# 1.0 sont :

abstract       class          event          if             new            readonly
as             const          explicit       implicit       null           ref
base           continue       extern         in             object         return
bool           decimal        false          int            operator       sbyte
break          default        finally        interface      out            sealed
byte           delegate       fixed          internal       override       short
case           do             float          is             params         sizeof
catch          double         for            lock           private        stackalloc
char           else           foreach        long           protected      static
checked        enum           goto           namespace      public         string

struct         throw          typeof         unchecked      using          volatile
switch         true           uint           unsafe         virtual        while
this           try            ulong          ushort         void

[5]

Les mots clés ajoutés entre C# 2.0 et 6.0 :

add            dynamic        join           select
alias          equals         let            set
ascending      from           nameof         value
async          get            on             var
await          global         orderby        where
by             group          partial        when
descending     into           remove         yield

[5]

La syntaxe de C# permet de réaliser des chaînes de caractères numériques dont le format est modifiable[6], notamment avec TimeSpan pour la réalisation de chronomètre ou minuteur[7].

Différences avec le C++

[modifier | modifier le code]
Cette section ne cite pas suffisamment ses sources (février 2017). 
Pour l'améliorer, ajoutez des références de qualité et vérifiables (comment faire ?) ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Le langage compte un certain nombre de changements par rapport au C/C++ ; on notera particulièrement les points suivants :

  • la manipulation directe de pointeurs ne peut se faire qu’au sein d’un code marqué unsafe, et seuls les programmes avec les permissions appropriées peuvent exécuter des blocs de code unsafe. La plupart des manipulations de pointeurs se font via des références sécurisées, dont l’adresse ne peut être directement modifiée, et la plupart des opérations de pointeurs et d’allocations sont contrôlées contre les dépassements de mémoire. Les pointeurs ne peuvent pointer que sur des types de valeurs, les types objets, manipulés par le ramasse-miettes, ne pouvant qu’être référencés ;
  • les objets ne peuvent pas être explicitement détruits. Le ramasse-miettes s’occupe de libérer la mémoire lorsqu’il n’existe plus aucune référence pointant sur un objet. Toutefois, pour les objets gérant des types non managés, il est possible d’implémenter l’interface IDisposable pour spécifier des traitements à effectuer au moment de la libération de la ressource ;
  • l’héritage multiple de classes est interdit, mais une classe peut implémenter un nombre illimité d’interfaces, et une interface peut hériter de plusieurs interfaces ;
  • le C# est beaucoup plus typé que le C++ ; les seules conversions implicites sont celles entre les différentes gammes d’entiers et celles d’un type dérivé à un type parent. Aucune conversion implicite n’a lieu entre booléens et entiers, entre membres d’énumération et entiers, ni de pointeurs sur un type void (quoique pour ce dernier point l’utilisation de références sur le type Object permette d’obtenir le même effet). Les conversions définies par l’utilisateur peuvent être définies comme implicites ou explicites ;
  • la syntaxe pour la déclaration des tableaux n’est pas la même : int[] a = new int[5] remplace int a[5]. Car il s'agit d'une allocation dynamique, int[] a étant la déclaration d'une référence (nulle si non initialisée). L'allocation manuelle d'un tableau sur la pile reste cependant possible avec le mot clé stackalloc[8] ;
  • les membres d’une énumération sont rassemblés dans leur propre espace de noms ;
  • le C# ne gère pas les templates, mais cette fonctionnalité a été remplacée par les types génériques apparus avec C# 2.0 ;
  • les propriétés ont été introduites, et proposent une syntaxe spécifique pour l’accès aux données membres (ainsi que la facilitation de l’accès simultané par plusieurs threads) ;
  • la réflexion totale des types est disponible ;
  • les délégués, qui sont des listes de pointeurs sur fonctions, sont utilisés notamment pour la programmation événementielle.

Différences avec le Java

[modifier | modifier le code]
Cette section ne cite pas suffisamment ses sources (février 2017). 
Pour l'améliorer, ajoutez des références de qualité et vérifiables (comment faire ?) ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Bien que le C# soit similaire à Java, il existe des différences notables, par exemple :

  • Java n'autorise pas la surcharge des opérateurs ;
  • Java a des exceptions vérifiées, alors que les exceptions du C# ne sont pas vérifiées, comme en C++ ;
  • Java permet la génération automatique de la documentation HTML à partir des fichiers sources à l'aide des descriptions Javadoc-syntax, tandis que le C# utilise des descriptions fondées sur le XML ;
  • Java n'a pas de langage préprocesseur ;
  • C# prend en charge les indexeurs, les méthodes déléguées, et les événements (là où Java se contente du patron de conception observateur) ;
  • C# ne prend pas en charge les implémentations anonymes d'interfaces et de classes abstraites ;
  • C# ne prend en charge que les classes internes statiques ;
  • C# prend en charge les structures en plus des classes (les structures sont des types valeur : on stocke le contenu et non l'adresse) ;
  • C# utilise une syntaxe intégrée au langage (DllImport[9]) et portable pour appeler une bibliothèque native, tandis que Java utilise Java Native Interface ;
  • C# intègre la généricité et la machine .NET a été modifiée pour permettre cela (Java l'intègre également, mais son implémentation a été réalisée dans le compilateur javac sans changer le bytecode Java)[10].

Histoire

[modifier | modifier le code]

C'est en septembre 2002 que la plateforme .NET et C# sont présentés au public[2]. C# devient le langage de facto de cette plateforme, il a par ailleurs été utilisé pour implémenter une partie de la plateforme .NET[2].

Versions

[modifier | modifier le code]
Année Version Bibliothèque Principal changement
2002 1.0 .NET framework 1.0 et 1.1
2005 2.0 .NET framework 2.0 généricité ajoutée à C# et au framework
2008 3.0 .NET framework 3.5 LINQ (Language INtegrated Queries)
2010 4.0 .NET framework 4.0 types dynamiques
2012 5.0 .NET framework 4.5 méthodes asynchrones
2015 6.0 .NET framework 4.6 version pour Linux
2017 7.0 - 7.3 .NET framework >= 4.5 et .NET Core 2.X Tuples, fonctions locales
2019 8.0 .NET standard >=2.1 et .NET Core >=3.0 Membre ReadOnly, opérateur d’assignation de fusion
2020 9.0 .NET 5.0 Vérification de nullité, instructions de niveau racine
2021 10.0 .NET 6.0 Directives d’utilisation globale, modèles de propriété étendus
2022 11.0 .NET 7.0 Attributs générique, membre requis, chaîne brute
2023 12.0 .NET 8.0 Simplification de code
2024 13.0 .NET 9.0 Amélioration param, lock

[5]

C# 2.0

[modifier | modifier le code]
Cette section ne cite pas suffisamment ses sources (février 2017). 
Pour l'améliorer, ajoutez des références de qualité et vérifiables (comment faire ?) ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Microsoft mit à disposition du public en octobre 2005, après une longue période de beta-tests, la version 2.0 de la bibliothèque .NET, accompagnée d’une nouvelle version de la quasi-totalité des outils associés. C# ne fait pas exception à la règle et sort donc en version 2.0, avec les ajouts suivants :

  • les classes partielles, permettant de répartir l’implémentation d’une classe sur plusieurs fichiers ;
  • les types génériques, qui ne sont pas une simple copie des templates C++. Par exemple, on trouvera dans les génériques C# la restriction de types (pour spécifier les types utilisables dans une généralisation). Par contre, il est impossible d’utiliser des expressions comme paramètres pour la généralisation ;
  • un nouvel itérateur qui permet l’utilisation de coroutines via le mot-clé yield, équivalent du yield que l’on trouve en Python ;
  • les méthodes anonymes avec des règles de fermeture configurables ;
  • les types « nullables », c'est-à-dire la possibilité de spécifier qu’un type de valeur peut être nul. Ceux-ci sont déclarés avec le caractère point d'interrogation « ? » suivant le nom du type, comme ceci : int? i = null;
  • le nouvel opérateur double point d'interrogation « ?? » utilise deux opérandes et retourne le premier non nul. Il a été introduit pour spécifier une valeur par défaut pour les types « nullables ».

À titre de référence, les spécifications complètes des nouveautés introduites dans la version 2.0 sont disponibles dans les liens externes.

La fonctionnalité des types nullables fut corrigée quelques semaines seulement avant la sortie publique de la version 2.0, car il a été mis en lumière que si la valeur de la variable était bien nulle, cette variable n’était pas nulle au sens traditionnel du terme, c'est-à-dire qu’il ne s’agit pas d’une référence vide. Ainsi, la conversion d’un type primitif de valeur nulle en objet donnait une référence non nulle vers une valeur nulle. Il fallut donc, pour corriger ce problème, corriger le noyau du CLR et effectuer de nombreuses vérifications et corrections sur tous les produits de la gamme .NET 2.0 (Visual Studio 2005, SQL Server 2005, C# et VB.NET).

C# 3.0

[modifier | modifier le code]
Cette section ne cite pas suffisamment ses sources (février 2017). 
Pour l'améliorer, ajoutez des références de qualité et vérifiables (comment faire ?) ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Le C# 3.0 fut présenté au salon Processing Community Day[11] 2005. La version finale est disponible depuis le 19 novembre 2007 au téléchargement sur le site de Microsoft][12]. Les principales nouveautés sont les suivantes :

  • L’ajout des mots-clefs select, from et where pour permettre la formation et l’exécution de requêtes SQL, XML, ou directement sur des collections. Cette fonctionnalité fait partie du programme Language Integrated Query (LINQ)][13].
  • Nouvelle possibilité d’initialisation d'un objet : À la place de Client c = new Client(); c.Nom = "Dupont";, on peut utiliser Client c = new Client{ Nom = "Dupont" };
  • Expressions lambda : ListeTrucs.Where( delegate(Truc x) { return x.Size > 10; } ); devient ListeTrucs.Where( x => x.Size > 10 );
  • Inférence du type des variables locales : string s = "Dupont" peut être remplacé par var s = "Dupont"
  • Introduction des types anonymes : var x = new { Nom = "Dupont" } peut être utilisé à la place de class __anonymous { private string _nom; public string Nom { get { return _nom; } set { _nom = value; } } } __anonymous x = new __anonymous(); x.Nom = "Dupont";
  • Les arbres d'expressions (expression trees[14]) : permettent la compilation du code sous forme d'arbres d'objets facilement analysables et manipulables.
  • Méthodes étendues : permet d'ajouter des méthodes à une classe en y ajoutant un premier paramètre this.

Une présentation du C# 3.0 et de LINQ peut être trouvée sur la page du centre de développement de .NET Framework.

Le code compilé en C# 3.0 est entièrement compatible avec celui du 2.0, étant donné que les améliorations apportées ne sont que purement syntaxiques ou ne consistent qu’en des raccourcis compensés au moment de la compilation. Les nouveautés introduites dans les bibliothèques de la version 3.5 (LINQ, etc.) ne sont cependant pas utilisables avec les versions précédentes de C#.

Cette version exige Windows XP ou une version supérieure (Vista ou Windows 7). Elle n'est pas disponible pour Windows 2000.

C# 4.0

[modifier | modifier le code]

La version 4 du langage apporte plusieurs nouveautés :

  • le typage dynamique des variables à l'aide du mot clé dynamic ;
  • les arguments nommés et facultatifs[15] ;
  • la prise en charge de la covariance et de la contravariance (en) pour les interfaces et les délégués génériques.

Le framework .NET 4.0 est sorti le 12 avril 2010, accompagné de Visual Studio 2010[16]. Il propose entre autres :

  • la nouvelle bibliothèque parallèle : Task Parallel Library[17] ;
  • une version optimisée de la plate-forme entité d'accès aux bases de données (Entity Framework) via l'utilisation de LINQ ;
  • la version parallèle de LINQ appelée PLINQ[18].

C# 5.0

[modifier | modifier le code]

La version 5 du langage permet de programmer plus simplement des programmes asynchrones grâce à l'ajout des mots clés async et await.

Le comportement des closures dans la boucle foreach (en) a été modifié. Il n'est désormais plus nécessaire d'introduire une variable locale dans une boucle foreach pour éviter les problèmes de closure[19].

À noter également les informations relatives à l'appelant[20] permettant de connaître le nom de la méthode qui a appelé une propriété.

C# 6.0

[modifier | modifier le code]

La sixième version du C# apporte plusieurs modifications, notamment :

Les propriétés implémentées automatiquement (ou propriétés automatiques) sont apparues en C# 3, pour simplifier la déclaration de propriétés qui se contentent d'encapsuler l'accès à des champs. Bien qu'elles permettent de rendre le code plus concis, elles présentent un inconvénient : il n'est pas possible de les initialiser au niveau de la déclaration, il faut forcément le faire dans le constructeur. De plus, il n'est pas possible de faire des propriétés automatiques en lecture seule, puisqu'elles n'ont pas de mutateur (setter) et on ne pourrait donc pas leur affecter de valeur.

C# 6 remédie à ce problème en permettant d'initialiser les propriétés automatiques au niveau de la déclaration[21].

C# 7.0

[modifier | modifier le code]

La version 7 du langage apporte de nombreuses nouveautés dont les principales sont[22]:

  • Les fonctions locales: la possibilité de déclarer une méthode à l'intérieur dans une autre méthode
  • Tuples et déconstruction: cela permet par exemple pour une fonction, de renvoyer plusieurs valeurs
  • Variables out: une variable peut être déclaré au moment de l'appel. Par exemple:
    int.TryParse(s, out int i);
    
  • Pattern matching (ou filtrage par motif en français) permet de déterminer si une valeur correspond à un motif donné. Exemple avec un switch: [23]
    switch (shape)
    {
        case Rectangle r:
            Console.WriteLine($"Rectangle with area {r.Width * r.Height}");
            break;
        case Circle c when c.Radius < 5:
            Console.WriteLine($"Small circle");
            break;
        case Circle c:
            Console.WriteLine($"Large circle");
            break;
    }
    
  • Membres expression-bodied étendus
  • Amélioration des littéraux numériques
  • Retours par référence

C# 8.0

[modifier | modifier le code]

La version 8 de C# est la première qui cible spécifiquement .NET Core.

Quelques nouveautés:

  • les fonction locales statiques[24]
  • l'utilisation de using sans bloc de code[24]:
public void UseDisposableObject() 
{ 
  using var disposableObject = new DisposableObject(); 

  // Utilisation de disposableObject 
  // ... 

  // disposableObject.Dispose() est exécuté juste avant la sortie de la méthode 
}
  • méthode d’interface par défaut
  • membre de structure readonly[25]
  • opérateur ??= : affecte une valeur uniquement si la variable est nulle[26]
  • index et plage d’une liste

C# 9.0

[modifier | modifier le code]

La version 9 de C# comprend entre autre les nouveautés suivantes[27]:

  • les records
  • l'accesseur init
  • new(): omission possible du type
  • les fonctions anonymes statiques
  • la simplification du code de la fonction Main()
  • le support de la méthode d’extension GetEnumerator() pour les boucles foreach

C# 10.0

[modifier | modifier le code]

La version 10 de C# comprend entre autre les nouveautés suivantes[28]:

  • simplification de la déclaration des namespaces, à la portée du fichier
  • amélioration du pattern matching
  • amélioration des expressions lambda
  • amélioration des records (introduits avec C# 9)
  • namespaces implicites (déclaré au niveau du projet plutôt que dans chaque fichier)

C# 11.0

[modifier | modifier le code]

Les principales nouveautés de la version 11 sont[29]:

  • les propriétés required qui doivent être obligatoirement initialisées
  • les littéraux de chaîne bruts. Ces chaînes commencent et se terminent par trois guillemets (""")
  • les listes patterns
  • le mot clé file pour la déclaration de type

C# 12.0

[modifier | modifier le code]

La version 12 de C# comprend les nouveautés suivantes[30]:

  • simplification de code pour la création des collections, comme par exemple: List<int> items1 = [1, 2, 3, 4];
  • les constructeurs primaires sur les classes ou les structures. Exemple: public class Rectangle(int length, int width);
  • l'opérateur spread, pour créer une collection à partir d'un énumérable. Exemple: List<int> collection1 = [..array1];
  • ref only en argument de méthode

C# 13.0

[modifier | modifier le code]

La version 13 de C#, introduite avec .Net 9, comprend les nouveautés suivantes[31] :

  • collections avec params : le mot clé fonctionne avec C# 13 pour tout type de collection ;
  • nouvel objet pour la synchronisation de thread : System.Threading.Lock ;
  • index à partir de la fin dans les initialisateurs de collection. Par exemple : Value[^1] = 999; ;
  • propriétés partielles et indexeurs partiels.

Standardisation

[modifier | modifier le code]

Le C# a été normalisé par l'ECMA (ECMA-334) en décembre 2001 et par l'ISO/CEI (ISO/CEI 23270) en 2003.

Les modifications survenues dans la Version 2.0 ont été normalisées par l'ECMA (ECMA-334) en juin 2006 et par l'ISO/CEI (ISO/CEI 23270:2006) en septembre 2006.

Microsoft a ouvert le code source de certaines bibliothèques utilisées par le C# en octobre 2007 sous la licence Microsoft Reference Source License (MS-RSL)[32].

Nom du langage

[modifier | modifier le code]

Le standard ECMA 334 et l'ISO 23270 définissent le nom du langage comme le caractère Unicode 0043 (C majuscule) suivi du caractère 0023 (#)[33]. Il est prononcé « C sharp » et non « C hash », « sharp » désignant en effet le symbole musical ♯ mais # étant nécessaire pour un accès facile depuis un clavier d'ordinateur qui propose le croisillon (« hash ») à la place.

Le nom "C#" est inspiré de la notation musicale où un dièse indique que la note écrite doit être augmentée d'un demi-ton. Ceci est similaire au nom de langage de C++, où "++" indique qu'une variable doit être incrémentée de 1 après avoir été évaluée. Le symbole # ressemble également à une ligature de quatre symboles "+" (dans une grille deux par deux), ce qui implique que le langage est un incrément de C++[réf. souhaitée].

Voir aussi

[modifier | modifier le code]
  • C++
  • Microsoft .NET
  • Visual Studio
  • Roslyn (compilateur) (en)

Annexes

[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • C Sharp, sur Wikimedia Commons
  • C sharp, sur le Wiktionnaire
  • C Sharp, sur Wikiversity
  • C Sharp, sur Wikibooks

Liens externes

[modifier | modifier le code]

  • Documentation C# – Démarrage, tutoriels et informations de référence | Microsoft DocsVoir et modifier les données sur Wikidata
  • Notice dans un dictionnaire ou une encyclopédie généralisteVoir et modifier les données sur Wikidata :
    • Store norske leksikon
  • Notices d'autoritéVoir et modifier les données sur Wikidata :
    • BnF (données)
    • LCCN
    • GND
    • Israël
    • Tchéquie
  • (en) Page du standard ISO/CEI 23270:2006
  • (en) Page du standard ECMA 334
  • Centre de Développement C# - Site MSDN

Bibliographie

[modifier | modifier le code]
  • C# et .NET - Gérard Leblanc - 2002 - Éditions Eyrolles - (ISBN 2-212-11066-9)
  • C# et .NET Version 2 - Gérard Leblanc - 2006 - Éditions Eyrolles - (ISBN 2-212-11778-7)
  • C# Tête la première - Andrew Stellman, Jennifer Greene - 2008 - Éditions Digit Books - (ISBN 978-2-81500-001-7)
  • Introduction à C# - Pierre-Yves Saumont, Antoine Mirecourt - 2001 - Éditions Eyrolles - (ISBN 2-7464-0301-3)
  • Le guide de survie C# - Gilles Tourreau - 2010 - Éditions Pearson Education - (ISBN 978-2-7440-2432-0)
  • (en) C# 2005 Programmer's Reference - Adrian Kingsley-Hughes, Kathie Kingsley-Hughes - 2006 - Édition Wrox - (ISBN 0-470-04641-4)
  • (en) C# Essentials, 2nd Edition - Ben Albahari, Peter Drayton, Brad Merrill - 2002 - Édition O'Reilly Media - (ISBN 0-596-00315-3)
  • (en) Professional C#, 3rd Edition - Simon Robinson, Christian Nagel, Karli Watson, Jay Glynn, Morgan Skinner, Bill Evjen - 2004 - Édition Wrox - (ISBN 0-7645-5759-9)

Notes et références

[modifier | modifier le code]
  1. ↑ a et b « What's new in .NET 10 » (consulté le 4 novembre 2025)
  2. ↑ a b c d e f g h i j k l m n o et p (en) Balagurusamy, Programming In C#, Tata McGraw-Hill Education - 2008, (ISBN 9780070667570).
  3. ↑ (en) Paul Hill Neowin ·, « Godot Engine arrives on Epic Games Store making it easier to download », sur Neowin, 9 mars 2024 (consulté le 9 mars 2024).
  4. ↑ a b c d e f g h i j et k (en) Anders Hejlsberg - Mads Torgersen - Scott Wiltamuth - Peter Golde, The C# Programming Language (Covering C# 4.0), Portable Documents, Addison-Wesley Professional - 2010, (ISBN 9780132481724).
  5. ↑ a b et c (en) Mark Michaelis - Eric Lippert, Essential C# 6.0, Addison-Wesley Professional - 2015, (ISBN 9780134176130).
  6. ↑ (en) « Custom numeric format strings », sur microsoft.com (consulté le 21 avril 2023).
  7. ↑ (en) « Custom TimeSpan format strings », sur microsoft.com (consulté le 21 avril 2023).
  8. ↑ Site MSDN
  9. ↑ (en) Microsoft Learn, « DllImportAttribute Class (System.Runtime.InteropServices) », sur Microsoft Learn, 16 mai 2023 (consulté le 31 janvier 2025).
  10. ↑ (en) Support du cours de sous-typage du MPRI[PDF], diapositives 73-80 et 70-89.
  11. ↑ (en) Processing Foundation, « Processing Foundation — Processing Community Day @ Worldwide », sur Processing Foundation (consulté le 31 janvier 2025).
  12. ↑ (en) https://msdn2.microsoft.com/en-us/vstudio/default.aspx
  13. ↑ (en) https://msdn2.microsoft.com/fr-fr/netframework/aa904594.aspx
  14. ↑ (en) Microsoft Learn, « Expression Trees - C#, Microsoft Learn », sur Microsoft Learn, 29 mai 2024 (consulté le 31 janvier 2025).
  15. ↑ https://msdn.microsoft.com/fr-fr/library/vstudio/dd264739(v=vs.100).aspx
  16. ↑ (en) Site MSDN.
  17. ↑ (en) Microsoft Learn, « Task Parallel Library (TPL) - .NET, Microsoft Learn », sur Microsoft Learn, 1er août 2022 (consulté le 31 janvier 2025).
  18. ↑ (en) Microsoft Learn, « Introduction to PLINQ - .NET, Microsoft Learn », sur Microsoft Learn, 30 mars 2017 (consulté le 31 janvier 2025).
  19. ↑ http://blogs.msdn.com/b/ericlippert/archive/2009/11/12/closing-over-the-loop-variable-considered-harmful.aspx
  20. ↑ https://msdn.microsoft.com/fr-fr/library/hh534540.aspx
  21. ↑ Thomas Levesque, « Les nouveautés de C# 6 » (consulté le 19 septembre 2015).
  22. ↑ Thomas Levesque, « Les nouveautés de C# 7 », Developpez.com,‎ 24 novembre 2016 (lire en ligne, consulté le 17 octobre 2025)
  23. ↑ Mathias Montantin, « Pattern matching (C# 7, C# 8.0) », sur Blog .NET, 17 octobre 2020 (consulté le 17 octobre 2025)
  24. ↑ a et b Mathias Montantin, « Fonctionnalités C# 8.0 », sur Blog .NET, 6 février 2021 (consulté le 17 octobre 2025)
  25. ↑ Mathias Montantin, « Membre d'une structure en lecture seule avec readonly (C# 8.0) », sur Blog .NET, 19 décembre 2020 (consulté le 17 octobre 2025)
  26. ↑ Mathias Montantin, « Références nullables (C# 8.0) », sur Blog .NET, 26 décembre 2020 (consulté le 17 octobre 2025)
  27. ↑ Mathias Montantin, « Les fonctionnalités C# 9.0 », sur Blog .NET, 31 décembre 2021 (consulté le 20 octobre 2025)
  28. ↑ Mathias Montantin, « Les fonctionnalités C# 10.0 », sur Blog .NET, 30 décembre 2023 (consulté le 20 octobre 2025)
  29. ↑ « Les nouveautés de C# 11 - Invivoo », sur invivoo.com (consulté le 20 octobre 2025)
  30. ↑ Mathias Montantin, « Les fonctionnalités C# 12 », sur Blog .NET, 16 août 2025 (consulté le 29 octobre 2025).
  31. ↑ Abdelkrim Bourennane, « Les nouveautés .NET 9 et C# 13 avec des exemples », sur Le blog de Cellenza, 10 décembre 2024 (consulté le 29 octobre 2025).
  32. ↑ Microsoft Reference Source License (MS-RSL)
  33. ↑ ECMA 334, p. 11
v · m
Microsoft
Fondateurs
  • Bill Gates
  • Paul Allen
Logo de Microsoft
Personnes clés
  • Satya Nadella
  • Reid Hoffman
  • Penny Pritzker
  • Charles Scharf
  • Emma Walmsley
  • Amy Hood
  • Phil Spencer
  • Joe Belfiore
  • Panos Panay
Produits
Systèmes d'exploitation
  • Windows 8
  • Windows Phone 8
  • Windows Server 2012
  • Windows 10
  • Windows 10 Mobile
  • Windows Server 2016
  • Windows Server 2019
  • Windows 11
Matériel
  • Kinect
  • Xbox
  • Xbox 360
  • Xbox One
  • Xbox Series
  • Band
  • Lumia
  • Surface
  • HoloLens
Logiciels
  • Copilot
  • Edge
  • Havok
  • 365 Copilot (suite bureautique)
    • Word
    • Excel
    • PowerPoint
    • Outlook
    • OneNote
  • OneDrive
  • Paint
  • Servers
  • Tay
  • Teams
  • Microsoft Visual Studio
  • Visual Studio Code
Applications Web
  • Bing
  • Calendrier
  • Contacts
  • Developer Network
  • LinkedIn
  • Maps
  • MSN
  • 365 Copilot
  • OneDrive.com
  • Microsoft Store
  • TechNet
  • Traduction
Outils
  • Explorateur Windows
  • Windows Defender
  • Microsoft Store
Technologie
  • Active Directory
  • Azure
  • C#
  • DirectX
  • Dynamics
  • GitHub
  • Majorana 1
  • .NET
  • SQL Server
  • TypeScript
  • Visual Basic .NET
  • Visual C++
Anciens produits
  • Altair BASIC
  • Encarta
  • Works
  • Mobile
  • Money
  • Messenger
  • Movie Maker
  • Cortana
  • Office
  • Office Online
  • Skype
Entreprise
Conférences
  • Build
  • WinHEC
  • Xbox Developer Direct
Divisions
  • Skype unit
  • Research
  • Store
  • Gaming
    • Xbox Game Studios
    • ZeniMax Media
    • Activision Blizzard
Litiges et critiques
  • Taxe Windows
  • Clippy
  • Internet Explorer
  • Microsoft Bob
  • _NSAKEY
  • Microsoft Windows
  • Microsoft Corp. v. Commission (en)
  • FTC v. Microsoft (en)
  • United States v. Microsoft Corp. (en)
Articles liés
  • Microsoft Redmond campus
  • Fondation Bill-et-Melinda-Gates
  • Maison de Bill et Melinda Gates
  • Bon article Acquisition d'Activision Blizzard par Microsoft
v · m
Normes ISO
  • 1
  • 3
  • 4
  • 9
  • 31
  • 216
  • 217
  • 228
  • 233
  • 259
  • 269
  • 639
  • 646
  • 690
  • 843
  • 1000
  • 2022
  • 2108
  • 2709
  • 3103
  • 3166
  • 3166-1
  • 3166-2
  • 3166-3
  • 3297
  • 3533
  • 3901
  • 4217
  • 5218
  • 5426
  • 6166
  • 6358
  • 6438
  • 6709
  • 7010
  • 7185
  • 7810
  • 8601
  • 8613
  • 8859
  • 9001
  • 9002
  • 9003
  • 9004
  • 9075
  • 9126
  • 9241
  • 9362
  • 9594
  • 9646
  • 9660
  • 9945
  • 9984
  • 10006
  • 10007
  • 10118-3
  • 10303
  • 10303-11
  • 10303-238
  • 10383
  • 10589
  • 10646
  • 10664
  • 10957
  • 11179
  • 11238
  • 11239
  • 11240
  • 11544
  • 11615
  • 11616
  • 11783
  • 11801
  • 12207
  • 13211-1
  • 13216
  • 13250
  • 13335
  • 13399
  • 13485
  • 13568
  • 13616
  • 14000
  • 14001
  • 14064
  • 14069
  • 14396
  • 14882
  • 15189
  • 15408
  • 15444
  • 15489
  • 15504
  • 15511
  • 15706
  • 15836
  • 15924
  • 16023
  • 16262
  • 16610
  • 17025
  • 17799
  • 18004
  • 19005
  • 19110
  • 19115
  • 19439
  • 19501
  • 19510
  • 19775-1
  • 20000
  • 20252
  • 21127
  • 21500
  • 22000
  • 23270
  • 24165
  • 25178
  • 26000
  • 26300
  • 27001
  • 27002
  • 27005
  • 27006
  • 27017
  • 27018
  • 29500
  • 32000
  • 50001
Logo de l’Organisation internationale de normalisation
  • Liste de normes ISO
  • Liste des normes de romanisation ISO
v · m
Langages de programmation
Concurrents
  • Ada
  • Erlang
  • Go
  • Modula-2
Déclaratifs
  • Clips
  • Prolog
  • Mercury
Fonctionnels
  • Clojure
  • Common Lisp
  • Erlang
  • F#
  • Gallina
  • Haskell
  • Lisp
  • ML
  • OCaml
  • Opa
  • Scheme
  • Standard ML
Impératifs
  • Algol
  • APL
  • Assembleur
  • Basic
  • BCPL
  • C
  • Cobol
  • DOPE
  • Forth
  • Fortran
  • Julia
  • Limbo
  • Lua
  • Modula-2
  • MUMPS
  • Natural
  • NQC
  • NXC
  • OPL
  • Pascal
  • Perl
  • PL/I
  • RPG
  • PowerShell
  • Rust
  • Tcl
  • WLangage
Orientés objet
  • ActionScript
  • AppleScript
  • C++
  • Common Lisp
  • C#
  • CoffeeScript
  • D
  • Delphi
  • Eiffel
  • Groovy
  • Haxe
  • Java
  • JavaScript
  • Lisaac
  • Logo
  • Objective-C
  • PHP
  • Python
  • Ruby
  • Scala
  • Scratch
  • Simula
  • Smalltalk
  • Swift
  • Kotlin
  • Visual Basic
  • Liste de langages de programmation
  • icône décorative Portail de Microsoft
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail de l’informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=C_Sharp&oldid=230344362 ».
Catégories :
  • Langage orienté objet
  • Norme ISO
  • Norme ECMA
  • .NET Framework
  • Langage de programmation
  • Invention américaine
Catégories cachées :
  • Page utilisant P571
  • Page utilisant P348
  • Page utilisant P277
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Article manquant de références depuis février 2017
  • Article manquant de références/Liste complète
  • Article à référence souhaitée
  • Catégorie Commons avec lien local identique sur Wikidata
  • Page utilisant un modèle Bases inactif
  • Page utilisant P4342
  • Page pointant vers des bases externes
  • Page pointant vers des dictionnaires ou encyclopédies généralistes
  • Article de Wikipédia avec notice d'autorité
  • Portail:Microsoft/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Programmation informatique/Articles liés
  • Portail:Technologies/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id