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
| Commande | Effet |
|---|---|
dotnet new console -o Recettes | Crée un projet console dans le dossier Recettes. |
dotnet run | Compile 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
| Outil | Usage |
|---|---|
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 : A | B hérite de A. |
virtual / override | Autoriser / redéfinir une méthode. |
abstract / sealed | Classe non créable seule / non héritable. |
interface IPrix | Contrat à 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