Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Basis Typecasting | Omgaan Met Gegevenstypen
C# Basisprincipes

bookBasis Typecasting

Typecasting is het proces waarbij een waarde van het ene gegevenstype naar het andere wordt omgezet. Dit is vaak mogelijk tussen typen die getallen voorstellen. Zo kun je bijvoorbeeld een float omzetten naar een int en omgekeerd. Het direct omzetten van een string naar een int is echter niet logisch en niet mogelijk zonder extra stappen.

Er zijn twee soorten typecasting: impliciete typecasting en expliciete typecasting.

Impliciete typecasting vindt automatisch plaats wanneer een waarde van het ene type naar het andere wordt omgezet, meestal van een kleiner naar een groter gegevenstype.

main.cs

main.cs

copy
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

Impliciete typecasting gebeurt automatisch wanneer een kleiner gegevenstype wordt omgezet naar een groter gegevenstype. De grootte van een gegevenstype wordt bepaald door hoeveel data het kan bevatten, gemeten in bits. Een int kan bijvoorbeeld 32 bits bevatten, terwijl een long 64 bits kan bevatten, dus het omzetten van een int naar een long gebeurt automatisch. Op dezelfde manier kan een float zonder problemen worden omgezet naar een double.

Hier is een lijst van gegevenstypen, gerangschikt van klein naar groot: char -> int -> long -> float -> double

Expliciete typecasting is wanneer jij als programmeur de computer opdracht geeft om een waarde naar een ander gegevenstype om te zetten. Dit is noodzakelijk bij het omzetten van een groter gegevenstype naar een kleiner, omdat er gegevens verloren kunnen gaan. Bijvoorbeeld, het omzetten van de float 3.14 naar een integer resulteert in 3, waarbij het decimale gedeelte verloren gaat. Daarom moet je expliciet aangeven dat de computer zo'n conversie moet uitvoeren.

main.cs

main.cs

copy
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); } } }

Om de fout in de bovenstaande code op te lossen, moeten we val1 expliciet casten naar een geheel getal.

De syntaxis van een cast is (datatype) value, bijvoorbeeld (int) 3.1415. In dit geval schrijven we dus (int) val1:

main.cs

main.cs

copy
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

Welke van de onderstaande uitspraken zijn correct?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 11

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

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

bookBasis Typecasting

Veeg om het menu te tonen

Typecasting is het proces waarbij een waarde van het ene gegevenstype naar het andere wordt omgezet. Dit is vaak mogelijk tussen typen die getallen voorstellen. Zo kun je bijvoorbeeld een float omzetten naar een int en omgekeerd. Het direct omzetten van een string naar een int is echter niet logisch en niet mogelijk zonder extra stappen.

Er zijn twee soorten typecasting: impliciete typecasting en expliciete typecasting.

Impliciete typecasting vindt automatisch plaats wanneer een waarde van het ene type naar het andere wordt omgezet, meestal van een kleiner naar een groter gegevenstype.

main.cs

main.cs

copy
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

Impliciete typecasting gebeurt automatisch wanneer een kleiner gegevenstype wordt omgezet naar een groter gegevenstype. De grootte van een gegevenstype wordt bepaald door hoeveel data het kan bevatten, gemeten in bits. Een int kan bijvoorbeeld 32 bits bevatten, terwijl een long 64 bits kan bevatten, dus het omzetten van een int naar een long gebeurt automatisch. Op dezelfde manier kan een float zonder problemen worden omgezet naar een double.

Hier is een lijst van gegevenstypen, gerangschikt van klein naar groot: char -> int -> long -> float -> double

Expliciete typecasting is wanneer jij als programmeur de computer opdracht geeft om een waarde naar een ander gegevenstype om te zetten. Dit is noodzakelijk bij het omzetten van een groter gegevenstype naar een kleiner, omdat er gegevens verloren kunnen gaan. Bijvoorbeeld, het omzetten van de float 3.14 naar een integer resulteert in 3, waarbij het decimale gedeelte verloren gaat. Daarom moet je expliciet aangeven dat de computer zo'n conversie moet uitvoeren.

main.cs

main.cs

copy
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); } } }

Om de fout in de bovenstaande code op te lossen, moeten we val1 expliciet casten naar een geheel getal.

De syntaxis van een cast is (datatype) value, bijvoorbeeld (int) 3.1415. In dit geval schrijven we dus (int) val1:

main.cs

main.cs

copy
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

Welke van de onderstaande uitspraken zijn correct?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 11
some-alt