Menu
Coddy logo textTech

Schemi di controllo dei valori null

Fa parte della sezione Logica e flusso del percorso C# di Coddy. Lezione 33 di 66.

Il controllo dei valori null è una parte essenziale della scrittura di codice C# robusto. Esistono diversi modelli che puoi usare per verificare in sicurezza i valori null.

Esploriamo alcuni schemi comuni per verificare la presenza di valori null:

Per prima cosa, il controllo di base per verificare se è null:

string name = null;

if (name == null)
{
    Console.WriteLine("Name is null");
}

Un altro schema comune è l'operatore null-conditional (?.), che consente di accedere in sicurezza ai membri di oggetti potenzialmente null:

string name = null;
int? length = name?.Length;  // length sarà null

L'operatore di coalescenza dei valori null (??) fornisce un valore predefinito quando un'espressione è null:

string name = null;
string displayName = name ?? "Unknown";  // displayName sarà "Unknown"

Puoi anche concatenare questi schemi per scenari più complessi:

string name = null;
int length = (name ?? "").Length;  // length sarà 0

Il metodo string.IsNullOrWhiteSpace() è un modo pratico per verificare se una stringa è null, vuota o contiene solo caratteri di spaziatura: tutto in un'unica chiamata:

string name = null;

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("Name is null, empty, or whitespace");
}

Questo è particolarmente utile quando devi trattare null, le stringhe vuote e le stringhe contenenti solo spazi vuoti allo stesso modo. Per esempio:

string name1 = null;
string name2 = "";
string name3 = "   ";

// Tutti e tre stamperanno il messaggio
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");

Nota che string.IsNullOrWhiteSpace() è diverso da un semplice controllo di null. Intercetta anche le stringhe vuote e quelle che contengono solo spazi, tabulazioni o altri caratteri di spaziatura.

challenge icon

Sfida

Facile

Crea un metodo chiamato processUserName che accetti un parametro stringa userName. Il metodo deve:

  1. Se userName è null, restituisci "No user provided"
  2. Se userName è vuoto o contiene solo spazi vuoti, restituisci "Invalid username"
  3. Altrimenti, restituisci "Welcome, [userName]!" dove [userName] è il nome utente effettivo

Ricordati di usare controlli di null appropriati.

Provalo tu

using System;

class ProcessUserName
{
    public static string processUserName(string userName)
    {
        // Scrivi il tuo codice qui
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C# online