lunedì 28 aprile 2025

C# la corrispondenza dei modelli, un modo per usare le condizioni

La tecnica Pattern Matching è quella di verificare una condizione e se questa viene rispettata impostare il relativo valore per il successivo utilizzo.
Una corrispondenza modelli che può tornare utile per usare il valore di una condizione nelle fasi successive del codice.

Vediamo un esempio pratico con la parola chiave IF.


C#

private void BtnPattern_Click(object sender, EventArgs e)

{

    object elemento =  "Testo di esempio";

    if (elemento is string valore)

    {

        MessageBox.Show("Il testo della condizione è:  " + valore );  //Visualizza testo di esempio

    }

}

In questo caso, la condizione viene rispettata e nella variabile denominata "valore" che è presente nella condizione, avrà come valore quello del testo.
Nel caso che invece l'oggetto era di tipo numerico, la condizione non era rispettata e quindi non visualizzava nessun messaggio a video.

Qui l'esempio
C#

private void BtnPattern_Click(object sender, EventArgs e)

 {

     //La condizione non è vera e quindi non viene visualizzato il messaggio

     object elemento = 22;// "Testo di esempio";

     if (elemento is string valore)

     {

         MessageBox.Show("Il testo della condizione è:  " + valore );  //Visualizza testo di esempio

     }

 }


Questa tecnica si può utilizzare anche con l'utilizzo di più condizioni, come nel caso della parola chiave Switch.

Di seguito un esempio con la parola chiave Switch.

C#

private void BtnPattern_Click(object sender, EventArgs e)

{

    Int32 livello = 10;

    string risultato = livello switch

    {

        5 => "Basso",

        10 => "Medio",

        15 => "Alto",

        _ => "Non definito"

    };

    MessageBox.Show(risultato); //Visualizza Medio

}



Altro utilizzo con la parola chiave Switch

C#

private void BtnPattern_Click(object sender, EventArgs e)

{

 

 

    Int32 livello = 10;

    string risultato = livello switch

    {

       < 5 => "Basso",

        >= 10 and < 15 => "Medio",

       > 15 => "Alto",

        _ => "Non definito"

    };

    MessageBox.Show(risultato); //Visualizza Medio

}



Nessun commento: