c type casting explicit implicit data conversion with example
Casting del tipo di dati in C # con esempi: questo tutorial spiega la conversione esplicita e implicita, la conversione in stringa e la conversione del tipo di dati utilizzando classi helper:
Tipi di dati e variabili in C # sono stati spiegati in dettaglio nel nostro precedente tutorial.
Abbiamo imparato come un tipo di dati può essere convertito in un altro tipo di dati utilizzando il casting del tipo. Il typecasting è diviso in due parti, ovvero conversione implicita ed esplicita.
Cerchiamo di approfondire il cast di tipo C # in questo tutorial.
=> Cerca qui la guida di formazione Easy C #
È una conversione implicita quando un tipo di dati più piccolo viene convertito in un tipo di dati più grande o una classe derivata in una classe base.
D'altra parte, la conversione nella direzione opposta è nota come conversione esplicita. Ha bisogno di un operatore cast per convertire un tipo di dati più alto in un tipo di dati più piccolo. Questo tipo di conversione non è indipendente dai tipi e potrebbe causare la perdita di dati.
Cosa imparerai:
domande sui colloqui di sapone e servizi web riposanti
Casting del tipo di dati in C #
In questo tutorial, discuteremo in dettaglio come un tipo di dati può essere convertito in un altro tipo di dati. C # è di tipo statico durante la compilazione, il che significa che dopo la dichiarazione di una variabile non può essere utilizzato per memorizzare valori di qualsiasi altro tipo di dati.
Tuttavia, questo può essere superato convertendo quel tipo in un tipo di variabile.
Proviamo a convertire un valore stringa in un numero intero.
int a; a = 'some random string';
Se lo compiliamo, verrà generato un errore che indica che 'Impossibile convertire implicitamente il tipo' stringa 'in' int '.'
I tipi di dati possono essere ulteriormente suddivisi in base ai tipi di dati.
- Primitivo
- Non-Primitive
Tipi di dati primitivi sono predefiniti mentre i tipi di dati non primitivi sono definiti dall'utente. I tipi di dati come byte, int, short, float, long, char, bool e così via sono chiamati tipi di dati primitivi. Tipi di dati non primitivi include class, enum, array, delegate, ecc.
In questo tutorial, esamineremo i diversi metodi offerti da C # per il typecasting.
Conversione implicita
La conversione implicita è il tipo di conversione più semplice. Questo tipo di conversione è indipendente dai tipi e durante la conversione non si verifica alcuna perdita di dati. Queste conversioni riguardano la conversione di una classe derivata in una classe base.
Per esempio, possiamo utilizzare direttamente la conversione implicita se il valore che deve essere memorizzato in un'altra variabile può adattarsi direttamente senza perdita di dati. Supponiamo di avere un valore 'intero' e di voler passare tale valore a un valore 'lungo'.
int i = 75; long j = i;
Conversione esplicita
Nella conversione implicita, abbiamo visto che possiamo convertire direttamente una classe derivata in una classe base senza perdere alcun dato, ma nel caso in cui vi sia una possibilità di perdita di dati, il compilatore richiederà l'esecuzione di una conversione esplicita.
La conversione o il cast esplicito è un processo di passaggio delle informazioni al compilatore che il programma sta tentando di eseguire la conversione con la consapevolezza di una possibile perdita di dati.
a cosa serve il c ++
Per esempio, se stiamo convertendo un valore numerico più alto in uno più basso.
double d = 75.25; int i; i = (int)d;
Ora, se stampi 'i', scoprirai che stamperà '75'. Tutti i dati dopo il decimale andranno persi nella conversione.
come dichiarare una lista collegata in java
Conversione utilizzando classi di supporto diverse
Per convertire tra diversi tipi non compatibili come la conversione di una stringa in un numero o un array di byte in un numero intero o anche stringhe esadecimali in altri tipi numerici, abbiamo bisogno di una classe di supporto diversa poiché una conversione diretta non è possibile.
Un tipo di dati può essere convertito in un altro tipo di dati utilizzando i metodi presenti nella classe convert o utilizzando un metodo TryParse disponibile per i vari tipi di numeri. TryParse è più utile se stiamo convertendo una stringa in un numero. È abbastanza semplice ed efficiente.
int number = Int32.Parse(“123”);
Qui abbiamo convertito una stringa in un numero intero utilizzando parse.
Diamo un'occhiata a un altro metodo di conversione che è il metodo Convert.
Metodi statici presenti all'interno di Converti classe sono abbastanza utili per la conversione nel tipo di dati di base o viceversa. Alcuni dei tipi di dati supportati sono Char, Boolean, Int32, int64, Double, Decimal, String, Int16, ecc. La classe Convert supporta anche metodi per altre conversioni.
Converti in stringa
Il metodo Convert.ToString converte un tipo di dati in una stringa. Nel esempio di seguito, stiamo convertendo un tipo di dati intero in un tipo di dati stringa.
int number = 75; string s = Convert.ToString(number);
InvalidCastException
A volte è possibile che il compilatore non capisca se l'operazione eseguita per convertire un tipo in un altro è valida o meno. In questo modo il compilatore non riesce durante il runtime. Una volta che la conversione del tipo ha esito negativo, verrà generata un'eccezione non valida.
InvalidCastException viene generata ogni volta che un'implementazione di conversione esplicita o di tipo non è supportata da entrambi i tipi di dati usati per la conversione.
Conclusione
In questo tutorial abbiamo imparato i tipi di conversione e come eseguire una conversione tra diversi tipi di dati. La conversione implicita è la conversione in cui una classe derivata viene convertita in una classe base come int in un tipo float.
La conversione esplicita è la conversione che può causare la perdita di dati. La conversione esplicita converte la classe base nella classe derivata. Potrebbe essere necessario eseguire la conversione su diversi altri tipi di dati, per farlo ci avvaliamo dell'aiuto della classe helper. Le classi di supporto come 'Parse' e 'ConvertTo' offrono vari modi per convertire un tipo di dati in un altro.
Abbiamo anche appreso dell'eccezione che il compilatore lancia quando non comprende la conversione tra due tipi.
=> Cerca qui la guida di formazione Easy C #
Lettura consigliata
- Tipi di dati e variabili C # con esempi
- Tipi di dati C ++
- Conversioni di tipo in C ++
- Data mining: processo, tecniche e problemi principali nell'analisi dei dati
- Esercitazione sul data mart - Tipi, esempi e implementazione del data mart
- Tipi di test di migrazione: con scenari di test per ogni tipo
- 10+ migliori strumenti di raccolta dati con strategie di raccolta dati
- Funzione pool di dati in IBM Rational Quality Manager per Test Data Management