Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grundlæggende Typekonvertering | Sektion
C#-Grundlæggende

Grundlæggende Typekonvertering

Stryg for at vise menuen

Typekonvertering er processen, hvor en værdi omdannes fra én datatyppe 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. Dog giver det ikke logisk mening at konvertere en string direkte til en int, og det er ikke muligt uden yderligere trin.

Der findes to typer typekonvertering: implicit typekonvertering og eksplicit typekonvertering.

Implicit typekonvertering sker automatisk, når en værdi konverteres fra én type til en anden, typisk fra en mindre til en større datatyppe.

main.cs

main.cs

1234
int 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 typekonvertering sker automatisk, når en mindre datatyppe konverteres til en større. Størrelsen på en datatyppe 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

Eksplicit typekonvertering er, når du som programmør fortæller computeren, at en værdi skal konverteres til en anden datatyppe. Dette er nødvendigt, når man konverterer fra en større datatyppe 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 fortælle computeren at foretage sådanne konverteringer.

main.cs

main.cs

123456789101112131415
using 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 skriver vi (int) val1:

main.cs

main.cs

123456789101112131415
using 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); } } }
question mark

Hvilke af nedenstående udsagn er korrekte?

Vælg alle korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 21

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 21
some-alt