Menu
Coddy logo textTech

Programmazione difensiva

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

La programmazione difensiva è una tecnica che aiuta a prevenire gli errori causati da riferimenti nulli. Consiste nel verificare la presenza di valori nulli prima di provare a usare gli oggetti.

Verifica che sia null prima di usare un oggetto:

string name = GetNameFromSomewhere();

// Controllo preventivo
if (name == null)
{
    // Gestisci il caso null
    name = "Default Name";
}

// Ora è sicuro usare name
Console.WriteLine(name.ToUpper());

Convalida i parametri nei metodi:

public void ProcessOrder(Order order)
{
    // Controllo preventivo per il parametro null
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Ora è sicuro elaborare l'ordine
    Console.WriteLine("Processing order: " + order.Id);
}

Usa l’operatore di accesso condizionale (?.) per controlli null più semplici:

Customer customer = GetCustomerFromSomewhere();

// Invece di:
// string city = null;
// if (customer != null && customer.Address != null)
// {
//     city = customer.Address.City;
// }

// Usa questo:
string city = customer?.Address?.City;
challenge icon

Sfida

Facile

Crea un metodo denominato ProcessUserData che accetti un parametro stringa userData. Il metodo deve:

  1. Verificare se userData è null: in tal caso, stampare "Error: User data is null" e terminare.
  2. Verificare se userData è vuoto: in tal caso, stampare "Error: User data is empty" e terminare.
  3. Se i dati sono validi, convertirli in maiuscolo e stampare "Processing: [UPPERCASE_DATA]".

Provalo tu

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // Suggerimento: la stringa "null" deve essere trattata come un vero valore null
        
        // 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