Conversione di Tipo di Base
Il Type Casting è il processo di conversione di un valore da un tipo di dato a un altro. Questo è spesso possibile tra tipi che rappresentano numeri. Ad esempio, è possibile convertire un float in un int e viceversa. Tuttavia, convertire direttamente una string in un int non ha senso logico e non è possibile senza passaggi aggiuntivi.
Esistono due tipi di type casting: type casting implicito e type casting esplicito.
Il type casting implicito avviene automaticamente quando un valore viene convertito da un tipo a un altro, solitamente da un tipo di dato più piccolo a uno più grande.
main.cs
1234int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
Il type casting implicito avviene automaticamente quando un tipo di dato più piccolo viene convertito in uno più grande. La dimensione di un tipo di dato è determinata da quante informazioni può contenere, misurata in bit. Ad esempio, un int può contenere 32 bit, mentre un long può contenerne 64, quindi la conversione da int a long avviene automaticamente. Allo stesso modo, un float può essere convertito in un double senza problemi.
Ecco un elenco di tipi di dato ordinati dal più piccolo al più grande:
char -> int -> long -> float -> double
Il type casting esplicito si verifica quando il programmatore indica al computer di convertire un valore in un tipo di dato diverso. Questo è necessario quando si converte da un tipo di dato più grande a uno più piccolo perché alcune informazioni potrebbero andare perse. Ad esempio, convertendo il float 3.14 in un intero si ottiene 3, perdendo la parte decimale. Per questo motivo è necessario indicare esplicitamente al computer di effettuare tali conversioni.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Per correggere l'errore nel codice sopra, è necessario effettuare un cast esplicito di val1 a un valore intero.
La sintassi di un cast è (datatype) value, ad esempio (int) 3.1415. Quindi, in questo caso scriveremo (int) val1:
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 1.59
Conversione di Tipo di Base
Scorri per mostrare il menu
Il Type Casting è il processo di conversione di un valore da un tipo di dato a un altro. Questo è spesso possibile tra tipi che rappresentano numeri. Ad esempio, è possibile convertire un float in un int e viceversa. Tuttavia, convertire direttamente una string in un int non ha senso logico e non è possibile senza passaggi aggiuntivi.
Esistono due tipi di type casting: type casting implicito e type casting esplicito.
Il type casting implicito avviene automaticamente quando un valore viene convertito da un tipo a un altro, solitamente da un tipo di dato più piccolo a uno più grande.
main.cs
1234int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
Il type casting implicito avviene automaticamente quando un tipo di dato più piccolo viene convertito in uno più grande. La dimensione di un tipo di dato è determinata da quante informazioni può contenere, misurata in bit. Ad esempio, un int può contenere 32 bit, mentre un long può contenerne 64, quindi la conversione da int a long avviene automaticamente. Allo stesso modo, un float può essere convertito in un double senza problemi.
Ecco un elenco di tipi di dato ordinati dal più piccolo al più grande:
char -> int -> long -> float -> double
Il type casting esplicito si verifica quando il programmatore indica al computer di convertire un valore in un tipo di dato diverso. Questo è necessario quando si converte da un tipo di dato più grande a uno più piccolo perché alcune informazioni potrebbero andare perse. Ad esempio, convertendo il float 3.14 in un intero si ottiene 3, perdendo la parte decimale. Per questo motivo è necessario indicare esplicitamente al computer di effettuare tali conversioni.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Per correggere l'errore nel codice sopra, è necessario effettuare un cast esplicito di val1 a un valore intero.
La sintassi di un cast è (datatype) value, ad esempio (int) 3.1415. Quindi, in questo caso scriveremo (int) val1:
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Grazie per i tuoi commenti!