Condividi tramite


Procedura: convertire una stringa in un valore integer (Guida per programmatori C#)

Aggiornamento: novembre 2007

In questi esempi vengono illustrate alcune modalità diverse che è possibile utilizzare per convertire un valore string in un valore int. Tale conversione può essere utile quando si ottiene input numerico da un argomento della riga di comando, ad esempio. Sono disponibili metodi simili per la conversione di stringhe in altri tipi numerici, ad esempio float o long. Nella tabella riportata di seguito sono elencati alcuni di questi metodi.

Tipo numerico

Metodo

decimal

ToDecimal(String)

float

ToSingle(String)

double

ToDouble(String)

short

ToInt16(String)

long

ToInt64(String)

ushort

ToUInt16(String)

uint

ToUInt32(String)

ulong

ToUInt64(String)

Esempio

In questo esempio viene chiamato il metodo ToInt32(String) per convertire la stringa "29" in un valore int. Viene quindi aggiunto 1 al risultato e viene stampato l'output.

int numVal = Convert.ToInt32("29");
numVal++;

Console.WriteLine(numVal);
// Output: 30

Un altro modo per convertire un valore string in un valore int consiste nell'utilizzare il metodo Parse o TryParse della struttura System.Int32. Il metodo ToUInt32 utilizza il metodo Parse internamente. Se il formato della stringa non è valido, il metodo Parse genera un'eccezione mentre il metodo TryParse non genera alcuna eccezione, ma restituisce false. Negli esempi riportati di seguito vengono illustrate chiamate con esito positivo e negativo ai metodi Parse e TryParse.

int numVal = Int32.Parse("-105");
Console.WriteLine(numVal);
// Output: -105
int j;
Int32.TryParse("-105", out j);
Console.WriteLine(j);
// Output: -105
try
{
    int m = Int32.Parse("abc");
}
catch (FormatException e)
{
    Console.WriteLine(e.Message);
}
// Output: Input string was not in a correct format.
string inputString = "abc";
int numValue;
bool parsed = Int32.TryParse(inputString, out numValue);

if (!parsed)
    Console.WriteLine("Int32.TryParse could not parse '{0}' to an int.\n", inputString);

// Output: Int32.TryParse could not parse 'abc' to an int.

Vedere anche

Attività

Procedura: determinare se una stringa rappresenta un valore numerico (Guida per programmatori C#)

Riferimenti

Tipi (Guida per programmatori C#)