This article has been localized into Dutch by the community.
Integers
Computers en cijfers gaan hand in hand, dus bij het programmeren zal je vaak werken met cijfers in allerlei vormen. Een van de meest gebruikte types in C# is de integer. Het woord "integer" kom uit het Latijn en betekent "heel", een integer is dan ook een "heel" cijfer, zonder waarde na de komma.
Int32 - de standaard integer
Zoals we reeds kort vermeld hebben, heb je binnen C# verschillende types integers. Maar de integer die je meestal zal gebruiken is de Int32 - een 32 bits integer. Deze kan je als volgt declareren:
Int32 number;
Aangezien dit echt het meest gebruikte type integer in C# is, heeft dit type ook een snelkoppeling. Je kan gewoon "int" gebruiken en C# zal weten dat je het over een Int32 hebt. Je kan er bij het declareren ook direct een waarde aan toekennen:
int number = 42;
Let op het verschil in casing - Int32 verwijst naar een klasse, dus begint dit met een hoofdletter I. int daarentegen is een keyword, dus begint het met een kleine letter i.
Int32 is een zogenoemde 'signed integer', die een getal kan bevatten tussen -2147483648 en 2147483647. Je kan dit controleren door de Int32.MinValue of de Int32.MaxValue constante op te roepen. Als je grotere getallen nodig hebt, of als je weet dat de getallen die je nodig hebt nooit de limieten van een integer zullen bereiken, kan je een ander type integer gebruiken.
Soorten integers
Er zijn heel wat types integers, te veel om allemaal te vermelden in dit hoofdstuk. Maar hier alvast een overzicht van de types die je waarschijnlijk meest zal gebruiken:
- byte - Een unsigned integer die een getal kan bevatten tussen 0 en 255.
- short - een 16 bit signed integer die een getal kan bevatten tussen -32768 en 32767. De officiële naam is Int16.
- long - een 64 bit signed integer die een getal kan bevatten tussen -9223372036854775808 en 9223372036854775807. De officiële naam is Int64.
Als je een nog grotere waarde wil opslaan dan het long type toelaat, kan je ulong gebruiken. Dit is een unsigned integer die een waarde kan bevatten tussen 0 en 18446744073709551615. Ook van de andere integer types bestaan er unsigned versies, zoals uint en ushort.
Wiskunde met integers
Als je met integers en cijfers werkt is de kans groot dat je wat berekeningen wil uitvoeren. Dit kan in de meeste programmeertalen makkelijk gedaan worden, inclusief C#. Je kan de meest voorkomende wiskundige operatoren gebruiken zoals je ze terugvindt op je toetsenbord (+, -, *, /). Een som kan je op de volgende manier maken:
int a = 42;
int b = 8;
Console.WriteLine(a + b);
Het getal 50 wordt weergegeven in de console. Je kan de som maken zonder iets speciaal te doen, definieer gewoon de variabelen, gebruik de + operator en je bent vertrokken.
Hetzelfde geldt voor de andere wiskundige operatoren, en je kan ook getallen gebruiken die je voordien niet gedefinieerd hebt als variabele:
int a = 42;
int b = 8;
Console.WriteLine(200 - ((a + b) * 2));
Let op het extra paar haakjes, net als bij echte wiskunde zal je rekening moeten houden met de volgorde van bewerkingen.
Integers en delen
We hebben reeds optellen, aftrekken en vermenigvuldigen gezien, laat het ons even hebben over delen. Bekijk even het volgende voorbeeld:
int a = 10;
int b = 3;
Console.WriteLine(a / b);
Je kan dit waarschijnlijk wel uitrekenen in je hoofd, en dan zal je weten dat het resultaat 3,3333333333 is. Maar als je het voorbeeld uitvoert zal je iets vreemd zien, het resultaat is gewoon 3. De reden hiervoor is, als je een deling doet met 2 integers in C# krijg je als resultaat ook een integer. En aangezien een integer geen getallen na de komma kan bevatten, wordt het resultaat afgerond. Als je echter een resultaat wil met cijfers na de komma, kan je ofwel een van de variabelen declareren als floating point (meer daarover later) of er een typecasten binnen de berekening:
int a = 10;
int b = 3;
Console.WriteLine((float)a / b);
Type conversie / typecasting
Laat ons het nog even hebben over hoe je iets van of naar een integer kan converteren. C# laat zowel impliciete als expliciete conversie toe tussen de verschillende types integer. Een voorbeeld van een impliciete conversie zie je hier:
int a = 10;
long b = a;
Als je een integer hebt, mag je deze dus behandelen als een long. Dit is mogelijk omdat C# weet dat de waarde van een integer sowieso past in een long. Als je dit echter in de omgekeerde richting doet, is dit niet altijd waar (een long past niet altijd in een integer), daarom dat je hiervoor expliciete conversie zal moeten gebruiken:
long a = 10;
int b = (int)a;
Hou er rekening mee dat dit mogelijk fout kan lopen. Als je een long hebt waarvan de waarde groter is dan een integer zal je problemen krijgen!
Samenvatting
Werken met getallen, integers en floating points, is iets wat je waarschijnlijk veel zal doen in elke programmeeropdracht. Na dit hoofdstuk weet je alvast meer over integers en hoe je ermee kan werken, in het volgende hoofdstuk hebben we het over floating point getallen.