Le quartierC# C#Pièce 7/7Mémo

C#

Le mémo de C# et .NET : commandes dotnet, types, contrôle du flux, collections, classes, LINQ, exceptions et async.

Ce mémo résume l'essentiel de C#. Chaque section renvoie au cours qui l'explique en détail.

Commandes dotnet

CommandeEffet
dotnet new console -o RecettesCrée un projet console dans le dossier Recettes.
dotnet runCompile et lance le programme.

Détails : Premier programme C#.

Types et chaînes

string nom = "Crêpes";
int portions = 4;
double prix = 3.5;
bool vegetarien = true;
var duree = 30;                       // type deviné : int

Console.WriteLine($"{nom} : {prix / portions:F2} euros par part");

Détails : Premier programme C#.

Conditions, boucles, méthodes

if (minutes <= 30 && vegetarien) { /* ... */ } else { /* ... */ }

string msg = categorie switch { "dessert" => "Pour finir", _ => "Autre" };

for (int i = 1; i <= 3; i++) { }
foreach (string ingredient in ingredients) { }
while (temperature < 180) { temperature += 40; }

static double PrixParPart(double prix, int portions) => prix / portions;

Détails : Conditions, boucles et méthodes.

Collections

OutilUsage
new List<string> { "a", "b" }Liste ordonnée : Add, Remove, Contains, Count, [0].
new Dictionary<string, double>()Clé unique vers valeur : d["k"] = v.
d.TryGetValue("k", out var v)Lecture sans erreur si la clé manque.

Détails : Collections et exceptions.

Exceptions

try
{
    int n = int.Parse(saisie);
}
catch (FormatException ex)
{
    Console.WriteLine(ex.Message);
}
finally
{
    Console.WriteLine("Toujours exécuté");
}

if (int.TryParse(saisie, out int portions)) { /* ... */ }

Détails : Collections et exceptions.

Classes et records

public class Recette
{
    public string Nom { get; }
    public int Minutes { get; private set; }
    public Recette(string nom, int minutes) { Nom = nom; Minutes = minutes; }
}

public record Ingredient(string Nom, int Quantite);
var plus = ingredient with { Quantite = 500 };

Détails : Classes, propriétés et records.

Héritage et interfaces

Mot-cléSens
class B : AB hérite de A.
virtual / overrideAutoriser / redéfinir une méthode.
abstract / sealedClasse non créable seule / non héritable.
interface IPrixContrat à implémenter avec class X : IPrix.

Détails : Héritage et interfaces.

LINQ

var noms = recettes
    .Where(r => r.Minutes <= 30)
    .OrderBy(r => r.Minutes)
    .Select(r => r.Nom)
    .ToList();

int total = recettes.Sum(r => r.Minutes);
var groupes = recettes.GroupBy(r => r.Categorie);

Détails : LINQ et async/await.

Async et await

static async Task<string> ChargerAsync(string nom)
{
    await Task.Delay(1000);
    return nom;
}

string texte = await ChargerAsync("Crêpes");
string[] tous = await Task.WhenAll(ChargerAsync("a"), ChargerAsync("b"));

Détails : LINQ et async/await.

Sources officielles

Ensuite

Projet
Lignes de code
Niveau
Le quartier
Appartement
C#
Pièce
7/7
Plan n°
csharp/index
Lignes de code · fiches rédigées à partir des documentations officielles, sources citées en bas de chaque page.