Grundlæggende Typekonvertering
Type casting er processen med at konvertere en værdi fra én datatyp til en anden. Dette er ofte muligt mellem typer, der repræsenterer tal. For eksempel kan du konvertere en float til en int og omvendt. Det giver dog ikke logisk mening at konvertere en string direkte til en int, og det er ikke muligt uden yderligere trin.
Der findes to typer type casting: implicit type casting og explicit type casting.
Implicit type casting sker automatisk, når en værdi konverteres fra én type til en anden, typisk fra en mindre til en større datatype.
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
Implicit type casting sker automatisk, når en mindre datatype konverteres til en større. Størrelsen på en datatype bestemmes af, hvor meget data den kan indeholde, målt i bits. For eksempel kan en int indeholde 32 bits, mens en long kan indeholde 64 bits, så konvertering fra int til long sker automatisk. Tilsvarende kan en float konverteres til en double uden problemer.
Her er en liste over datatyper ordnet fra mindst til størst:
char -> int -> long -> float -> double
Explicit type casting er, når du som programmør instruerer computeren i at konvertere en værdi til en anden datatype. Dette er nødvendigt, når der konverteres fra en større datatype til en mindre, fordi noget data kan gå tabt. For eksempel vil konvertering af float-værdien 3.14 til et heltal resultere i 3, hvor decimaldelen går tabt. Derfor skal du eksplicit angive, at computeren skal foretage sådanne konverteringer.
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); } } }
For at rette fejlen i ovenstående kode, skal vi eksplicit caste val1 til en heltalsværdi.
Syntaksen for en cast er (datatype) value, for eksempel (int) 3.1415. Så i dette tilfælde vil vi skrive (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); } } }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you give an example of implicit type casting in code?
What happens if I try to cast a string to an int?
Can you explain more about explicit type casting with examples?
Awesome!
Completion rate improved to 1.59
Grundlæggende Typekonvertering
Stryg for at vise menuen
Type casting er processen med at konvertere en værdi fra én datatyp til en anden. Dette er ofte muligt mellem typer, der repræsenterer tal. For eksempel kan du konvertere en float til en int og omvendt. Det giver dog ikke logisk mening at konvertere en string direkte til en int, og det er ikke muligt uden yderligere trin.
Der findes to typer type casting: implicit type casting og explicit type casting.
Implicit type casting sker automatisk, når en værdi konverteres fra én type til en anden, typisk fra en mindre til en større datatype.
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
Implicit type casting sker automatisk, når en mindre datatype konverteres til en større. Størrelsen på en datatype bestemmes af, hvor meget data den kan indeholde, målt i bits. For eksempel kan en int indeholde 32 bits, mens en long kan indeholde 64 bits, så konvertering fra int til long sker automatisk. Tilsvarende kan en float konverteres til en double uden problemer.
Her er en liste over datatyper ordnet fra mindst til størst:
char -> int -> long -> float -> double
Explicit type casting er, når du som programmør instruerer computeren i at konvertere en værdi til en anden datatype. Dette er nødvendigt, når der konverteres fra en større datatype til en mindre, fordi noget data kan gå tabt. For eksempel vil konvertering af float-værdien 3.14 til et heltal resultere i 3, hvor decimaldelen går tabt. Derfor skal du eksplicit angive, at computeren skal foretage sådanne konverteringer.
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); } } }
For at rette fejlen i ovenstående kode, skal vi eksplicit caste val1 til en heltalsværdi.
Syntaksen for en cast er (datatype) value, for eksempel (int) 3.1415. Så i dette tilfælde vil vi skrive (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); } } }
Tak for dine kommentarer!