Differenza tra cast di tipi e conversione di tipi

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 1 Maggio 2024
Anonim
Casting VS Converting VS Parsing in C#: Which to choose?
Video: Casting VS Converting VS Parsing in C#: Which to choose?

Contenuto


La differenza di base tra la conversione di tipo e la fusione di tipo, ovvero la conversione di tipo viene effettuata "automaticamente" dal compilatore, mentre la fusione di tipo deve essere "esplicitamente eseguita" dal programmatore.

I due termini "cast di tipo" e "conversione di tipo" si verificano quando è necessario convertire un tipo di dati in un altro. Quando i due tipi sono compatibili tra loro, la compilazione di un tipo in un altro avviene automaticamente. Discutiamo la differenza sia del tipo casting che della conversione con l'aiuto della tabella di confronto.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione:

Base per il confrontoDigitare CastingTipo di conversione
SensoUn tipo di dati viene assegnato a un altro dall'utente, utilizzando un operatore di cast quindi viene chiamato "Casting di tipo".La conversione automatica di un tipo di dati in un altro da parte del compilatore è denominata "Conversione del tipo".
ApplicatoLa fusione dei tipi può anche essere applicata a due tipi di dati incompatibili.La conversione del tipo può essere implementata solo quando due tipi di dati sono compatibili.
OperatorePer trasmettere un tipo di dati a un altro, è necessario un operatore di casting ().Nessun operatore richiesto.
Dimensione dei tipi di datiIl tipo di destinazione può essere più piccolo del tipo di origine.Qui il tipo di destinazione deve essere più grande del tipo di origine.
implementatoViene eseguito durante la progettazione del programma.Viene fatto esplicitamente durante la compilazione.
Tipo di conversione

Conversione restringente.Ampliamento della conversione.
Esempioint a;
byte b;
...
...
b = (byte) a;
int a = 3;
galleggiante b;
b = a; // valore in b = 3.000.


Definizione di Casting di tipo

Digitare casting può essere definito come il cast di un tipo di dati in un altro tipo di dati, dal programmatore, al momento della progettazione del programma. La conversione automatica di un tipo di dati in un altro non è sempre possibile. Potrebbe essere la condizione che il "tipo di destinazione" sia più piccolo del "tipo di fonte". Pertanto, il programmatore deve trasmettere esplicitamente il tipo di dati più grande a un tipo di dati più piccolo utilizzando l'operatore di casting "()". Poiché il tipo di dati più grande viene modulato in base al tipo di dati più piccolo, viene anche chiamato "restringimento della conversione".

Dichiarazione:

destination_type = (target_type) variabile / valore // tipo di destinazione è un tipo in cui si desidera convertire il tipo di origine, è sempre il tipo di destinazione.

Esempio

Comprendiamolo con un esempio. Desideri convertire il tipo di dati "int" in "byte". Ora, poiché "byte" è più piccolo di "int", la conversione del tipo non è consentita. Qui, abbiamo dovuto convertire implicitamente "int" in "byte" utilizzando l'operatore di casting "()". Poiché "int" è maggiore di "byte", la dimensione di "int" verrà ridotta all'intervallo "int mod byte".


int a; byte b; ... ... b = (byte) a;

Quando il "float" viene convertito in "int", la dimensione del float viene troncata, poiché "int" non memorizza il valore frazionario. Se la dimensione del tipo di destinazione è troppo piccola per adattarsi al tipo di origine, il tipo di origine è il tipo di destinazione del modulo "intervallo". Il cast può essere applicato anche quando i tipi di dati sono compatibili. È buona norma utilizzare la fusione dei tipi ovunque sia necessaria la conversione dei tipi.

Definizione di conversione di tipo

Tipo di conversione è la conversione automatica di un tipo di dati in un altro ogniqualvolta richiesto, fatto esplicitamente dal compilatore. Ma ci sono due condizioni da soddisfare prima della conversione del tipo.

  • Il tipo di origine e destinazione deve essere compatibile.
  • Il tipo di destinazione deve essere più grande del tipo di origine.

Queste due condizioni dovrebbero soddisfare per ottenere la conversione del tipo, e questo tipo di conversione è chiamato "conversione allargata", poiché un tipo più piccolo viene convertito in tipo più grande, si verifica l'allargamento del tipo. Per questa conversione allargata, i tipi numerici come "int", "float" sono compatibili tra loro mentre anche i valori numerici in char e booleano o char in booleano non sono compatibili.

Esempio

Questo esempio fornirà una visione migliore di ciò

int a = 3; galleggiante b; b = a; // valore in b = 3.000.

Qui, "int" viene convertito in "float" che è più grande di "int", quindi si verifica l'allargamento del tipo di sorgente. Qui, non è richiesto alcun operatore di casting in quanto il compilatore lo farà esplicitamente.

  1. La differenza fondamentale che distingue la fusione di tipi dalla conversione di tipi è che la fusione di tipi è la conversione di un tipo in un altro, effettuata dal programmatore. D'altra parte, la conversione del tipo è la conversione di un tipo in un altro, eseguita dal compilatore durante la compilazione.
  2. Il tipo casting può essere applicato ai tipi di dati, che potrebbero non essere compatibili tra loro. Al contrario, la conversione del tipo può essere applicata solo ai tipi di dati compatibili tra loro.
  3. La conversione di un tipo in un altro tipo di cast richiede l'operatore di casting "()", mentre la conversione di un tipo di dati in un altro nella conversione di tipo non richiede alcun operatore.
  4. Durante la conversione di un tipo di dati in un altro nel cast di tipi, il tipo di destinazione può essere più grande o più piccolo del tipo di origine. Al contrario, il tipo di destinazione deve essere maggiore del tipo di origine nella conversione del tipo.
  5. La conversione di un tipo in un altro tipo viene eseguita durante la codifica in tipo casting. Al contrario, nella conversione del tipo, la conversione di un tipo in un altro viene esplicitamente eseguita durante la compilazione.
  6. Il tipo casting viene chiamato restringimento della conversione perché qui il tipo di destinazione può essere più piccolo del tipo di origine. Diversamente, la conversione di tipo è chiamata conversione allargata perché qui, il tipo di destinazione deve essere più grande del tipo di origine.

Conclusione:

Si può concludere che la conversione del tipo e il cast del tipo, entrambi svolgono il compito di convertire un tipo di dati in un altro, ma differiscono nel senso che il cast del tipo viene eseguito dal programmatore, usando l'operatore cast () 'e la conversione del tipo viene effettuata dal compilatore e non utilizza alcun operatore.