I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Quando dichiari una nuova variabile in C#, di solito la inizializzi con un particolare tipo di dati. Potrebbe trattarsi di un numero intero, decimale, booleano, stringa o di un altro tipo di dati.

È possibile convertire un valore da un tipo di dati a un altro. Ad esempio, se stai convertendo una stringa in un numero intero, dovrai prima analizzare il valore. Ecco alcuni modi diversi per convertire e analizzare i valori.

Perché è necessario convertire o analizzare i dati?

Un esempio di quando potrebbe essere necessario analizzare i dati è se si richiede l'input dell'utente in un'applicazione console C#:

Consolle. Linea di scrittura("Inserisci la tua età:");
stringa stipendio = Console. Linea di lettura();

In questo caso, l'utente inserirà un valore intero, ma l'applicazione lo memorizzerà come stringa per impostazione predefinita. Se provassi a utilizzare il valore della stringa in qualsiasi calcolo, otterresti un errore di compilazione:

instagram viewer

Un altro motivo per convertire i tipi di dati è accedere a determinati metodi che sono disponibili solo per un tipo di dati specifico. Ad esempio, la struttura DateTime contiene una funzione che consente di aggiungere minuti. Se invece stessi usando una stringa, non avresti accesso al metodo:

Potresti anche voler convertire un valore in un altro tipo di dati se hai bisogno di seguire la struttura del tipo di dati di a classe creata in C# o un struttura in C#.

Come convertire e analizzare diversi tipi di dati

È possibile analizzare diversi tipi di dati come numeri interi, doppi, tipi booleani e tipi datetime.

Stringhe a numeri interi

Per convertire una stringa in un numero intero, utilizzare il metodo Parse():

stringa strInt = "45";
int int32 = Int32.Parse (strInt);
Consolle. WriteLine (int32); // uscita: 45

È inoltre possibile analizzare la stringa in numeri interi di diverse dimensioni in bit, ad esempio Int16, Int32 o Int64.

int int16 = Int16.Parse (strInt);
Consolle. WriteLine (int16); // uscita: 45

Se stai usando il metodo Parse(), assicurati che il valore della stringa rappresenti un numero intero. Se provi ad analizzare un valore non intero come "Ciao", riceverai un errore di analisi in fase di esecuzione.

stringa invalidString = "Ciao";
int invalidResult = Int32.Parse (invalidString);

Puoi anche utilizzare il metodo TryParse() per rilevare eventuali eccezioni che potrebbero verificarsi durante l'analisi:

int tryParseResult = 0;

Se (Int32.TryParse(stringa non valida, fuoritryParseResult))
{
Consolle.Linea di scrittura(tryParseResult);
}
altro
{
Consolle. Linea di scrittura("Qualcosa è andato storto");
}

Per riconvertire un numero intero in una stringa, utilizzare il metodo ToString():

stringa intString = 45.ToString();
Consolle. WriteLine(intString); // uscita: 45

Stringhe a doppie

L'analisi di una stringa in un valore double è molto simile all'analisi di uno in un numero intero. Usa il metodo Parse() dalla classe Double:

stringa strDouble = "90.5";
Doppio d = doppio. Analizza (strDouble);
Consolle. WriteLine (d); // uscita: 90,5

Come con i numeri interi, puoi anche utilizzare il metodo TryParse() per rilevare eventuali errori di analisi che potrebbero verificarsi:

stringa invalidStringDouble = "Ciao";
Doppio tryParseDouble = 0;

Se (Doppio.TryParse(invalidStringDouble, fuoriprovaParseDouble))
{
Consolle.Linea di scrittura(provaParseDouble);
}

Per convertire un double in un numero intero, utilizzare il metodo ToString():

Doppio dDoppio = 90.5;
stringa dString = dDouble. Accordare();
Consolle. WriteLine(dString); // uscita: 90,5

Raddoppia a numeri interi

Puoi usare il casting per convertire un double in un numero intero. Poiché un numero intero memorizza solo un numero intero, la conversione rimuoverà le posizioni decimali. Ad esempio, la conversione di "12.34" memorizzerà solo il valore "12".

Doppio dValore = 12.34;
int iValore = (int)dValore;
Consolle. WriteLine (iValue); // uscita: 12

Puoi anche restituire un numero intero a un doppio:

dValore = (Doppio)iValore;
Consolle. WriteLine (dValore); // uscita: 12

Stringhe e valori booleani

Per convertire una stringa in un valore booleano, utilizzare il metodo Parse() o ToBoolean():

stringa stringaBool = "VERO";
bool b = bool. Analizza (stringBool);

// O

b = Converti. ToBoolean (stringBool);
Consolle. ScriviLinea (b); // output: vero

Per riconvertire un valore booleano in una stringa, utilizzare il metodo ToString():

stringa strTrue = VERO.Accordare();
stringa strFalse = falso.Accordare();

Interi e valori booleani

Per convertire un numero intero in un valore booleano, utilizzare il metodo ToBoolean() per convertire un "1" o uno "0" nel relativo valore booleano equivalente. Il valore "1" verrà convertito in "vero" mentre "0" verrà convertito in "falso":

int falseBit = 0;
int trueBit = 1;
Consolle. WriteLine (Converti. ToBoolean (falseBit)); // output: falso
Consolle. WriteLine (Converti. ToBoolean (trueBit)); // output: vero

È inoltre possibile passare un valore intero diverso da "1" o "0" al metodo ToBoolean(). Per impostazione predefinita, il metodo restituirà comunque "true":

int bit non valido = 8;
Consolle. WriteLine (Converti. ToBoolean (invalidBit)); // output: vero

Per riconvertire un valore booleano in un numero intero, utilizzare il comando Convert. Metodo ToInt32(). La conversione di "true" restituirà un "1" e la conversione di "false" restituirà uno "0".

bool iBool = VERO;
int bInt = Converti. ToInt32(iBool);
Consolle. WriteLine (bInt); // uscita: 1

Stringhe a DateTime

Per analizzare una stringa nel formato datetime, utilizzare il metodo DateTime. Parse() metodo:

DateTime newDateTime = DateTime. Analizza("01/01/2018 00:00:00");
Consolle. WriteLine (newDateTime); // uscita: 01/01/2018 00:00:00

Per riconvertire un datetime in una stringa, utilizzare il metodo ToString():

DataOra dt = nuovo Appuntamento(2018, 1, 1);
stringa dtStringa = dt. Accordare();
Consolle. WriteLine (dtString); // uscita: 01/01/2018 00:00:00

Analisi dei valori in diversi tipi di dati

Ora sai come convertire i valori da un tipo di dati a un altro. Queste non sono le uniche conversioni disponibili, quindi sentiti libero di saperne di più su altri tipi di dati in C#.

Puoi anche esplorare come funzionano altri tipi di dati in altri linguaggi, come JavaScript.