Waardetypen en referentietypen ontdekken
- 8 minuten
Als er veel gegevenstypen beschikbaar zijn in C#, kiest u de juiste gegevenstypen die u wilt gebruiken, wat betekent dat u moet begrijpen wanneer u het ene gegevenstype over een ander gegevenstype kunt kiezen.
Voordat u gaat bespreken waarom u het ene gegevenstype boven een ander gegevenstype kunt kiezen, moet u meer weten over gegevenstypen. U moet ook weten hoe gegevens en gegevenstypen werken in C# en .NET.
Wat zijn gegevens?
Het beantwoorden van de vraag 'wat gegevens zijn' is afhankelijk van wie u vraagt en in welke context.
Bij softwareontwikkeling zijn gegevens in feite een waarde die als een reeks bits in het geheugen van de computer wordt opgeslagen. Een bit is een eenvoudige binaire schakelaar die wordt weergegeven als een 0 of 1, aangeduid met 'uit' en 'aan'. Een enkele bit lijkt niet bruikbaar, maar wanneer u 8 bits in een reeks combineert, vormen ze een byte. Bij gebruik in een byte krijgt elke bit een betekenis in de reeks. In feite kunt u 256 verschillende combinaties met slechts 8 bits vertegenwoordigen als u een binair (base-2) numeriek systeem gebruikt.
In een binair numeriek systeem kunt u bijvoorbeeld het getal 195 weergeven als 11000011. In de volgende tabel kunt u visualiseren hoe dit werkt. De eerste rij heeft acht kolommen die overeenkomen met een positie in een byte. Elke positie vertegenwoordigt een andere numerieke waarde. De tweede rij kan de waarde van een afzonderlijke bit opslaan, ofwel 01.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
Als u het getal optellen uit elke kolom in de eerste rij die overeenkomt met een 1 in de tweede rij, krijgt u het decimale equivalent van de binaire numerieke systeemweergave. In dit geval zou het zijn 128 + 64 + 2 + 1 = 195.
Om met grotere waarden dan 255 te werken, slaat uw computer meer bytes op (meestal 32-bits of 64-bits). Als u met miljoenen grote getallen in een wetenschappelijke instelling werkt, moet u mogelijk zorgvuldiger overwegen welke gegevenstypen u gebruikt. Uw code kan meer geheugen vereisen om uit te voeren.
Hoe zit het met tekstgegevens?
Als een computer alleen 0s en 1s begrijpt, hoe kunt u dan met tekst werken? Met behulp van een systeem zoals ASCII (American Standard Code for Information Interchange) kunt u één byte gebruiken om hoofdletters en kleine letters, cijfers, tab, backspace, newline en veel wiskundige symbolen weer te geven.
Als u bijvoorbeeld een kleine letter a als waarde in mijn toepassing wilt opslaan, begrijpt de computer alleen de binaire vorm van die waarde. Om beter te begrijpen hoe een kleine letter a wordt verwerkt door de computer, moet ik een ASCII-tabel zoeken die ASCII-waarden en hun decimale equivalenten levert. U kunt zoeken naar de termen 'ASCII lookup decimal' om een dergelijke resource online te zoeken.
In dit geval is de kleine letter a gelijk aan de decimale waarde 97. Vervolgens zou u hetzelfde binaire numerieke systeem in omgekeerde volgorde gebruiken om te bepalen hoe een ASCII-letter a door de computer wordt opgeslagen.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
Aangezien 64 + 32 + 1 = 97 de 8-bits binaire ASCII-code voor a01100001 is.
Het is waarschijnlijk dat u deze typen conversies nooit zelf hoeft uit te voeren, maar het begrijpen van het perspectief van de computer van gegevens is een fundamenteel concept, met name omdat u gegevenstypen overweegt.
Wat is een gegevenstype?
Een gegevenstype is een manier waarop een programmeertaal definieert hoeveel geheugen moet worden opgeslagen voor een waarde. Er zijn veel gegevenstypen in de C#-taal die moeten worden gebruikt voor veel verschillende toepassingen en grootten van gegevens.
Voor de meeste toepassingen die u tijdens uw carrière bouwt, zult u kiezen voor een klein aantal van de beschikbare gegevenstypen. Het is echter nog steeds essentieel om te weten dat anderen bestaan en waarom.
Waarde versus verwijzingstypen
Deze module is gericht op de twee soorten typen in C#: verwijzingstypen en waardetypen.
Variabelen van verwijzingstypen slaan verwijzingen op naar hun gegevens (objecten), dat wil gezegd dat ze verwijzen naar gegevenswaarden die ergens anders zijn opgeslagen. Ter vergelijking bevatten variabelen van waardetypen rechtstreeks hun gegevens. Naarmate u meer informatie over C# krijgt, komen er nieuwe details tevoorschijn die betrekking hebben op het fundamentele verschil tussen waarde- en verwijzingstypen.
Eenvoudige waardetypen
Eenvoudige waardetypen zijn een set vooraf gedefinieerde typen die door C# worden geleverd als trefwoorden. Deze trefwoorden zijn aliassen (een bijnaam) voor vooraf gedefinieerde typen die zijn gedefinieerd in de .NET-klassebibliotheek. Het C#-trefwoord int is bijvoorbeeld een alias van een waardetype dat is gedefinieerd in de .NET-klassebibliotheek als System.Int32.
Eenvoudige waardetypen bevatten veel van de gegevenstypen die u mogelijk al hebt gebruikt, zoals char en bool. Er zijn ook veel integrale en drijvendekommage-waardetypen die een breed scala aan gehele en fractionele getallen vertegenwoordigen.
Samenvatting
- Waarden worden opgeslagen als bits, die eenvoudig in- of uitschakelen zijn. Als u genoeg van deze switches combineert, kunt u ongeveer elke mogelijke waarde opslaan.
- Er zijn twee basiscategorieën van gegevenstypen: waarde en referentietypen. Het verschil is in hoe en waar de waarden door de computer worden opgeslagen terwijl uw programma wordt uitgevoerd.
- Eenvoudige waardetypen gebruiken een trefwoordalias om formele namen van typen in de .NET-bibliotheek weer te geven.
Uw kennis controleren
Feedback
Is deze pagina nuttig?
Nee
Need help with this topic?
Want to try using Ask Learn to clarify or guide you through this topic?