Menu
Coddy logo textTech

Aide-mémoire C#

Dernière mise à jour

Hello World et structure d'un programme

Les instructions de premier niveau (depuis .NET 6) vous permettent de sauter la classe standard.

ÉlémentCode
Programme de premier niveauConsole.WriteLine("Hello, World!");
Importer un espace de nomsusing System;
Point d'entrée classiquestatic void Main(string[] args) { ... }
Afficher une ligneConsole.WriteLine("text");
Lire une lignestring s = Console.ReadLine();
Interpolation de chaîneConsole.WriteLine($"Hi {name}");
Commentaires// line et /* block */

Types de données

TypeDescription
intEntier signé 32 bits
longEntier signé 64 bits
double / floatNombres à virgule flottante
decimalDécimal haute précision (monnaie)
booltrue ou false
charCaractère Unicode unique
stringTexte immuable
varLe compilateur infère le type
int?Type valeur nullable

Variables

OpérationSyntaxe
Déclarer et initialiserint x = 5;
Inférence de typevar name = "Ada";
Constanteconst double Pi = 3.14159;
Champ en lecture seulereadonly int id;
Référence nullablestring? maybe = null;
Coalescence des nulsvar y = maybe ?? "default";
Accès conditionnel nulint? len = text?.Length;

Contrôle de flux

InstructionSyntaxe
If / elseif (x > 0) { ... } else { ... }
Instruction switchswitch (n) { case 1: ...; break; default: ...; }
Expression switchvar s = n switch { 1 => "one", _ => "other" };
Boucle whilewhile (i < n) { ... }
Boucle do-whiledo { ... } while (i < n);
Boucle forfor (int i = 0; i < n; i++) { ... }
Boucle foreachforeach (var item in list) { ... }
Break / continuebreak; sort d'une boucle, continue; passe à l'itération suivante

Méthodes

OpérationSyntaxe
Définir une méthodeint Add(int a, int b) { return a + b; }
Corps d'expressionint Add(int a, int b) => a + b;
Sans valeur de retourvoid Greet() { ... }
Paramètre optionnelint Pow(int b, int e = 2) { ... }
Arguments nommésPow(b: 2, e: 3);
Paramètre outbool TryParse(string s, out int n) { ... }
Méthode statiquestatic int Square(int x) => x * x;
Expression lambdaFunc<int, int> f = x => x * 2;

Classes et POO

OpérationSyntaxe
Définir une classeclass Dog { ... }
Propriété automatiquepublic string Name { get; set; }
Propriété en lecture seulepublic int Id { get; }
Constructeurpublic Dog(string name) { Name = name; }
Créer un objetvar d = new Dog("Rex");
Héritageclass Puppy : Dog { ... }
Interfaceinterface IRunnable { void Run(); }
Redéfinir une méthodepublic override void Speak() { ... }
Record (immuable)record Point(int X, int Y);

Collections

Collections génériques de System.Collections.Generic.

TypeUsage et exemple
List<T>Tableau dynamique : list.Add(1); list.Count;
Dictionary<K, V>Clé-valeur : dict["a"] = 1; dict.ContainsKey("a");
HashSet<T>Valeurs uniques : set.Add(5); set.Contains(5);
Queue<T>FIFO : q.Enqueue(x); q.Dequeue();
Stack<T>LIFO : s.Push(x); s.Pop();
Tableauint[] nums = { 1, 2, 3 };
Initialiseur de collectionvar l = new List<int> { 1, 2, 3 };
Parcourir un dictionnaireforeach (var kv in dict) { kv.Key; kv.Value; }

LINQ

Interroger les collections de façon fluide ; de System.Linq.

OpérationSyntaxe
Filtrernums.Where(n => n > 0)
Projeter / mappernums.Select(n => n * 2)
Triernums.OrderBy(n => n) / OrderByDescending(...)
Première correspondancenums.First(n => n > 5) / FirstOrDefault(...)
Any / allnums.Any(n => n < 0) / nums.All(n => n > 0)
Compter les correspondancesnums.Count(n => n > 0)
Agrégernums.Sum(), nums.Max(), nums.Average()
Regrouper paritems.GroupBy(i => i.Category)
Matérialiser.ToList() / .ToArray()

Schémas courants (propriétés, async)

SchémaSyntaxe
Méthode asyncasync Task<int> GetAsync() { ... }
Attendre une tâchevar result = await GetAsync();
Try / catchtry { ... } catch (Exception e) { ... }
Finallyfinally { ... } s'exécute toujours
Using (libération)using var file = File.OpenRead(path);
Formatage de chaîne$"Total: {amount:C}"
Classe génériqueclass Box<T> { public T Value; }
Filtrage par motifif (obj is Dog d) { d.Bark(); }

La syntaxe C#, les collections et les requêtes LINQ que vous utilisez le plus, sur une seule page. Cet aide-mémoire C# est une référence rapide pour écrire du C# - les types de données, le contrôle de flux, les classes, les collections List/Dictionary, LINQ, ainsi que les schémas de propriétés et d'async qui définissent un code .NET idiomatique.

Tout ce qui figure ici est du C# standard sur .NET et s'exécute avec la CLI dotnet. Copiez ce dont vous avez besoin, ou essayez n'importe quel extrait en direct dans le playground C# - aucun SDK à installer.

FAQ de l'aide-mémoire C#

Cet aide-mémoire C# est-il gratuit ?
Oui. Cet aide-mémoire C# est entièrement gratuit, sans inscription. Mettez-le en favori et revenez dès que vous devez retrouver une syntaxe, une collection ou une méthode LINQ.
Quelle est la différence entre les types valeur et les types référence en C# ?
Les types valeur (int, double, bool, struct, enum) contiennent directement leurs données et sont copiés lors de l'affectation ou du passage à une méthode - modifier la copie n'affecte pas l'original. Les types référence (class, string, tableaux, List<T>) contiennent une référence vers des données sur le tas, donc deux variables peuvent pointer vers le même objet et une modification via l'une est visible via l'autre. string est un type référence mais se comporte de façon immuable.
Qu'est-ce que LINQ et quand l'utiliser ?
LINQ (Language Integrated Query) est un ensemble de méthodes comme Where, Select et OrderBy qui vous permettent de filtrer, transformer et agréger des collections avec des appels lisibles et chaînables au lieu de boucles manuelles. Utilisez-le chaque fois que vous écririez sinon une boucle pour construire une liste filtrée ou projetée - c'est concis et évalué de manière paresseuse jusqu'à ce que vous appeliez ToList() ou que vous itériez.
Puis-je m'entraîner à C# en ligne ?
Oui. Ouvrez le playground C# pour exécuter n'importe quel extrait de cet aide-mémoire dans votre navigateur - aucun SDK à installer. Quand vous voulez de la structure, le cours C# interactif gratuit de Coddy vous emmène des variables et des boucles jusqu'aux classes, aux collections et à LINQ, étape par étape.
Cet aide-mémoire convient-il aux débutants ?
Oui. Il est organisé des briques de base les plus courantes (types, contrôle de flux, méthodes) jusqu'aux plus avancées (LINQ, async, génériques), pour que vous puissiez utiliser les premières sections dès le premier jour et progresser vers le reste.
Coddy programming languages illustration

Apprenez C# avec Coddy

COMMENCER