Basis 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
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
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
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); } } }
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
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); } } }
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Basis 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
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
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
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); } } }
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
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); } } }
Bedankt voor je feedback!