
Benvenuti, cavalieri della tastiera e signore della semicolon! Siete stanchi di sentire parlare solo di LINQ, async/await e di quanto sia figo C# 12? Anche noi. Per questo, ho messo insieme una serie che scava nelle catacombe del linguaggio, dove riposano in pace o in semi-vita quelle funzionalità che, diciamocelo, se non esistessero, le nostre build ci metterebbero lo stesso tempo. Preparate il caffè, affilate il sarcasmo e ricordate: stiamo scherzando… forse.
Contents
I discard (_) – Quando ignorare è un’arte (marziale)
Il grande Snorlax del codice
Ah, i discard (il carattere underscore _). Li conoscono tutti, li usano in pochi. Sono l’equivalente del “visualizzatore di storie” su Instagram: sai che è lì, ma lo usi solo quando non vuoi che il tuo capo sappia che sei online. Il loro vero scopo? Permettere al compilatore di C# di dire: “Va bene, ti fidi di me. So che stai ricevendo 17 valori da questa tupla, ma ti interessano solo il 1° e l’ultimo. Gli altri 15? Fai pure finta che non esistano.”
È una filosofia di vita, se ci pensate. L’approccio “Minimal Effort, Maximum Impact”. Se Marie Kondo decidesse di diventare una programmatrice C#, consiglierebbe di fare discard di tutto ciò che non “ti dà gioia” nel codice.
“There is no try, only do.” – Yoda (Saga di Star Wars).
Traduzione per programmatori: Non c’è bisogno di dichiarare la variabile se tanto non la usi. Basta non farlo. Sii come l’energia oscura che tiene unita la galassia: essenziale, ma silenziosamente ignorata.
Il sacrificio della variabile
Immaginate un metodo che restituisce una ValueTuple mastodontica, il “Sacro Graal” di dati di cui vi serve solo un piccolo pezzo.
C#
public (string Name, int Age, bool IsVerified, DateTime LastLogin, decimal CreditScore) GetUserMegaData(int userId)
{
// Lunga e triste logica di business qui...
return ("Gennaro", 42, true, DateTime.Now.AddDays(-3), 750.50m);
}
// Nel codice chiamante...
// Vogliamo solo il CreditScore per controllare se è un buon pagatore.
// E il nome... per il saluto.
var (userName, _, _, _, score) = GetUserMegaData(1);
Console.WriteLine($"Ciao, {userName}! Il tuo punteggio è {score}.");
// Output: Ciao, Gennaro! Il tuo punteggio è 750.50.
In questo esempio, _ ha salvato il mondo dalla dichiarazione inutile di Age, IsVerified e LastLogin. Sono lì, ma sono invisibili. Proprio come le performance dei Lakers nelle ultime stagioni. Potrebbero esserci, ma l’occhio non le vede.
