arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

Datatypes

circle-check

Kennisclip voor deze inhoudarrow-up-right

Een essentieel onderdeel van C# is kennis van datatypes. Een datatype is, zoals de naam het zegt, een soort waartoe bepaalde gegevens kunnen behoren. Wanneer je data wenst te bewaren in je applicatie dan zal je je moeten afvragen wat voor soort data het is. Gaat het om een getal, een geheel getal, een kommagetal, een stuk tekst of misschien een binaire reeks? Een variabele met een bepaald datatype kan een bepaald soort data bewaren en dit zal afhankelijk hiervan een bepaalde hoeveelheid computergeheugen vereisen.

Er zijn tal basistypes in C# gedeclareerd (zogenaamde built-in datatypes). Dit semester leren we werken met datatypes voor:

  • Gehele getallen: sbyte, byte, short, ushort, int, uint, long

  • Kommagetallen: double, float, decimal

  • Tekst: char, string

circle-info

Het datatype string heb je al in actie gezien in het vorig hoofdstuk. Je hebt toen al een variabele aangemaakt van het type string door de zin string result;.

Verderop koppelden we de naam result dan aan het resultaat van een actie, namelijk inlezen van tekst via Console.ReadLine (eerst wordt dat resultaat uitgerekend, dan pas wordt het aan de naam gekoppeld):

hashtag
Basistypen voor getallen

C# heeft een hoop datatypes gedefinieerd om te werken met getallen zoals wij ze kennen, gehele en kommagetallen. Intern zullen deze getallen steeds binair bewaard worden, maar dat merken we zelden tijdens het programmeren.

De basistypen van C# om getallen in op te slaan zijn:

  • Voor gehele getallen: sbyte, byte, short, ushort, int, uint, long

  • Voor kommagetallen: double, float, decimal

Deze datatypes hebben allemaal een bepaald bereik, wat een rechtstreeks gevolg is van de hoeveelheid geheugen die ze innemen.

hashtag
Gehele getallen

Voor de gehele getallen:

Enkele opmerkingen bij deze tabel:

  • De s vooraan sbyte types staat voor signed: m.a.w. 1 bit wordt gebruikt om het + of - teken te bewaren.

  • De u vooraan ushort, uint en ulong

hashtag
Kommagetallen

Voor de kommagetallen zijn er maar 3 mogelijkeden. Ieder datatype heeft een voordeel tegenover de 2 andere, dit voordeel staat vet in de tabel:

Zoals je ziet moet je bij kommagetallen een afweging maken tussen 3 even belangrijke criteria. Heb je zeer grote precisie (veel cijfers na de komma) nodig, dan ga je voor een decimal. Wil je vooral erg grote of erg kleine getallen (met meer kans op afrondingen), dan kies je voor double.

circle-info

Bij twijfel opteren we meestal voor kommagetallen om het double datatype te gebruiken. Bij gehele getallen kiezen we meestal voor int.

hashtag
Boolean datatype

Het bool (boolean) is het eenvoudigste datatype van C#. Het kan maar 2 mogelijke waarden bevatten: true of false. 1 of 0 met andere woorden. In het Nederlands meestal uitgedrukt als "waar" en "niet waar".

We zullen het bool datatype erg veel nodig hebben wanneer we met zullen werken, specifiek de die afhankelijk van de uitslag van een bool bepaalde code wel of niet zullen doen uitvoeren.

hashtag
Tekst/String datatype

We besteden verderop een heel apart hoofdstuk aan tonen hoe je tekst en enkele karakters kan bewaren in variabelen. De basis:

  • Tekst kan bewaard worden in het string datatype

    • Letterlijke tekst schrijf je tussen dubbele quotes, bijvoorbeeld "Hallo Wereld!"

Meer info vind je later in .

Booleans: bool

-32768 tot 32767

ushort

16 bits

0 tot 65535

int

32 bits

-2 147 483 648 tot 2 147 483 647

uint

32 bits

0 tot 4294967295

long

64 bits

-9 223 372 036 854 775 808 tot 9 223 372 036 854 775 807

ulong

64 bits

0 tot 18 446 744 073 709 551 615

char

16 bits

0 tot 65535

staat voor
unsigned
. Het omgekeerde van signed dus. Kwestie van het ingewikkeld te maken. Deze twee datatypes hebben dus geen teken en zijn
altijd positief
.
  • char heeft dezelfde kenmerken als ushort, maar dient voor iets anders. ushort gebruik je echt om getallen binnen dat bereik voor te stellen. char bewaart karakters, d.w.z. symbolen zoals letters. Een beetje vereenvoudigd kan je stellen dat er een tabel is waarin elk symbool gekoppeld is aan een getal, zodat een reeks nulletjes en eentjes ook een letter kan voorstellen.

  • decimal

    128 bits

    28 to 29 digits

    Een enkel karakter wordt bewaard in het char datatype, dat we ook hierboven al even hebben zien passeren.
    • Letterlijke karakter schrijf je tussen enkele quotes, bijvoorbeeld 'à'

    Type

    Geheugen

    Bereik

    Meer info

    sbyte

    8 bits

    -128 tot 127

    infoarrow-up-right

    byte

    8 bits

    0 tot 255

    infoarrow-up-right

    short

    Type

    Geheugen

    Bereik

    Precisie

    float

    32 bits

    ±1.5⋅10−45 to ±3.4⋅1038±1.5 \cdot 10^{-45} \space to\space ±3.4 \cdot 10^{38}±1.5⋅10−45 to ±3.4⋅1038

    6 to 9 digits

    infoarrow-up-right

    double

    64 bits

    ±5.0⋅10−324 to ±1.7⋅10308\bold{±5.0 \cdot 10^{-324} \space to\space ±1.7 \cdot 10^{308}}±5.0⋅10−324 to ±1.7⋅10308

    15 to 17 digits

    beslissingen
    if statements
    dit hoofdstuk

    16 bits

    result = Console.ReadLine();
    ±1.0⋅10−28 to ±7.9228⋅1028±1.0 \cdot 10^{-28}\space to\space ±7.9228 \cdot 10^{28}±1.0⋅10−28 to ±7.9228⋅1028
    infoarrow-up-right
    infoarrow-up-right
    infoarrow-up-right
    infoarrow-up-right
    infoarrow-up-right
    infoarrow-up-right
    infoarrow-up-right
    infoarrow-up-right
    infoarrow-up-right