async/await
async Task<int> GetAsync() => await Task.FromResult(42);
exception
try { throw new Exception("fail"); }
catch (Exception ex) { Console.WriteLine(ex.Message); }
collezioni
var tags = new List<string> { "ai", "film" };
linq
var data = new List<int> {1,2,3};
var out = data.Where(x => x > 1).ToList();
esercizi
definisci un metodo async e attendi il risultato.
async Task<int> LoadAsync() => await Task.FromResult(42);
var value = await LoadAsync();
Console.WriteLine(value);
panoramica
In questo capitolo su async/await lavoriamo su async/await, exception, collezioni, linq per creare micro-pattern riutilizzabili.
lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.
badge: c# essentials
obiettivi
- capire e applicare async/await in uno scenario reale
- capire e applicare exception in uno scenario reale
- capire e applicare collezioni in uno scenario reale
- capire e applicare linq in uno scenario reale
scheda rapida
async Task<int> GetAsync() => await Task.FromResult(42);
adatta questo scheletro agli esempi della lezione.
tips
- preferisci async/await
- usa record per dati immutabili
- inietta dipendenze
- testa i servizi
- documenta le api
- gestisci timeout e cancellazioni
tip: documenta ogni scelta architetturale.
mini progetto
crea un metodo async e gestisci errori.
- definisci Task
- await
- log
output atteso: task completato.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale