0Pricing
C# Academy · Lezione

La classe Convert e il parsing

Esegua il parsing e le conversioni con Convert e TryParse.

La classe Convert e il parsing è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 4 lezioni in totale.

Convertire le stringhe in numeri

L'input dell'utente arriva sotto forma di testo. Per eseguire calcoli con esso, è necessario convertire le stringhe in numeri. C# offre Convert, Parse e TryParse.

using System;

class Program
{
    static void Main()
    {
        string input = "42";
        int number = int.Parse(input);
        Console.WriteLine(number + 8);
    }
}

int.Parse

int.Parse converte una stringa numerica in un int. Genera una FormatException se il testo non è un numero valido.

using System;

class Program
{
    static void Main()
    {
        try
        {
            int n = int.Parse("abc");
            Console.WriteLine(n);
        }
        catch (FormatException)
        {
            Console.WriteLine("Not a valid number");
        }
    }
}

int.TryParse

int.TryParse evita le eccezioni: restituisce true in caso di successo e inserisce il risultato in un parametro out, oppure restituisce false in caso di errore.

using System;

class Program
{
    static void Main()
    {
        if (int.TryParse("123", out int n))
            Console.WriteLine("Parsed: " + n);
        else
            Console.WriteLine("Failed");
    }
}

TryParse per un input sicuro

TryParse è il metodo preferibile per gestire input non attendibile, perché il testo non valido viene gestito correttamente anziché causare un arresto anomalo.

using System;

class Program
{
    static void Main()
    {
        string[] inputs = { "10", "oops", "30" };
        int total = 0;
        foreach (var s in inputs)
        {
            if (int.TryParse(s, out int v))
                total += v;
        }
        Console.WriteLine("Total of valid: " + total);
    }
}

La classe Convert

La classe Convert converte molti tipi di base: Convert.ToInt32, Convert.ToDouble, Convert.ToBoolean e altri ancora.

using System;

class Program
{
    static void Main()
    {
        int i = Convert.ToInt32("256");
        double d = Convert.ToDouble("3.14");
        bool b = Convert.ToBoolean("true");
        Console.WriteLine(i + ", " + d + ", " + b);
    }
}

Convert gestisce null

A differenza di int.Parse, Convert.ToInt32(null) restituisce 0 invece di generare un'eccezione, il che può essere comodo o sorprendente.

using System;

class Program
{
    static void Main()
    {
        string s = null;
        int n = Convert.ToInt32(s);   // returns 0
        Console.WriteLine("Result: " + n);
    }
}

Convertire tra tipi numerici

Convert converte anche un tipo numerico in un altro e arrotonda, invece di troncare, quando converte valori con virgola mobile in interi.

using System;

class Program
{
    static void Main()
    {
        double d = 7.6;
        int cast = (int)d;             // truncates -> 7
        int converted = Convert.ToInt32(d);   // rounds -> 8
        Console.WriteLine("cast=" + cast + ", convert=" + converted);
    }
}

Analizzare altri tipi

La maggior parte dei tipi integrati dispone dei propri metodi Parse/TryParse: double.TryParse, bool.TryParse, DateTime.TryParse e così via.

using System;

class Program
{
    static void Main()
    {
        bool okD = double.TryParse("2.5", out double d);
        bool okB = bool.TryParse("True", out bool flag);
        Console.WriteLine(okD + ":" + d + ", " + okB + ":" + flag);
    }
}

ToString per la conversione inversa

Per convertire nuovamente un numero in testo, chiami ToString(), facoltativamente con una stringa di formato.

using System;

class Program
{
    static void Main()
    {
        int n = 255;
        double price = 12.5;
        Console.WriteLine(n.ToString());
        Console.WriteLine(price.ToString("C"));   // currency format
    }
}

Scegliere lo strumento corretto

Utilizzi TryParse per l'input dell'utente di cui non può fidarsi, Parse quando l'input è certamente valido e Convert per gestire i valori null o convertire molti tipi diversi.

using System;

class Program
{
    static void Main()
    {
        string userInput = "55x";
        int value = int.TryParse(userInput, out int v) ? v : -1;
        Console.WriteLine(value == -1 ? "Invalid input" : "Got " + value);
    }
}

Mettere tutto insieme

Un flusso robusto per l'input esegue la convalida con TryParse, usa un valore predefinito in caso di errore, quindi esegue i calcoli in sicurezza.

using System;

class Program
{
    static int ReadAge(string input)
    {
        if (int.TryParse(input, out int age) && age >= 0)
            return age;
        return 0;   // safe default
    }

    static void Main()
    {
        Console.WriteLine("Age: " + ReadAge("28"));
        Console.WriteLine("Age: " + ReadAge("bad"));
    }
}

Verifica rapida

Verifichi la comprensione dell'analisi e della conversione.

Riepilogo

Converta il testo in numeri con int.Parse (genera un'eccezione in caso di input errato), int.TryParse (è sicuro e restituisce un valore booleano più un valore out) oppure la classe Convert (gestisce i valori null, arrotonda i valori con virgola mobile e converte molti tipi). È preferibile usare TryParse per l'input non attendibile e ToString() per la conversione inversa.

using System;

class Program
{
    static void Main()
    {
        if (int.TryParse("99", out int n))
            Console.WriteLine("Value: " + n);
        Console.WriteLine("Convert: " + Convert.ToInt32("7"));
    }
}

Domande Frequenti

La lezione «La classe Convert e il parsing» è gratuita?

Sì — il testo completo di «La classe Convert e il parsing» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 4 lezioni in totale.

Cosa imparerò in «La classe Convert e il parsing»?

Esegua il parsing e le conversioni con Convert e TryParse. Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C# Academy?

Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «La classe Convert e il parsing»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C# Academy?

Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Tipi valore e tipi riferimento
  2. Boxing e unboxing
  3. Conversioni implicite ed esplicite
  4. La classe Convert e il parsing
← Torna a C# Academy