C# Datatypes: Waarde, Referentie en Pointer Types
C# variabelen vallen in drie categorieën:
- Value types
- Reference types
- Pointer types
Value Types
Bevatten direct data. Afgeleid van System.ValueType. Voorbeelden: int, char, float. Bij declaratie wordt geheugen toegewezen.
| Type | Representeert | Bereik | Default |
|---|---|---|---|
| bool | Boolean waarde | True/False | False |
| byte | 8-bit unsigned integer | 0 to 255 | 0 |
| char | 16-bit Unicode karakter | U+0000 to U+FFFF | '\0' |
| decimal | 128-bit precieze decimaal | (±7.9×10²⁸)/10⁰⁻²⁸ | 0.0M |
| double | 64-bit double-precision float | ±5.0×10⁻³²⁴ to ±1.7×10³⁰⁸ | 0.0D |
| float | 32-bit single-precision float | ±3.4×10³⁸ | 0.0F |
| int | 32-bit signed integer | -2.147B to 2.147B | 0 |
| long | 64-bit signed integer | -9.22×10¹⁸ to 9.22×10¹⁸ | 0L |
| sbyte | 8-bit signed integer | -128 to 127 | 0 |
| short | 16-bit signed integer | -32,768 to 32,767 | 0 |
| uint | 32-bit unsigned integer | 0 to 4.29B | 0 |
| ulong | 64-bit unsigned integer | 0 to 1.84×10¹⁹ | 0 |
| ushort | 16-bit unsigned integer | 0 to 65,535 | 0 |
Grootte opvragen met sizeof(type):
Console.WriteLine("Size of int: {0}", sizeof(int)); % 4
Reference Types
Bevatten geen data direct, maar een referentie (geheugenadres). Meerdere variabelen kunnen naar dezelfde locatie wijzen. Wijziging via één variabele is zichtbaar voor andere.
Ingebouwde referentie types: object, dynamic, string.
Object Type
Ultieme basisklasse voor alle typen (CTS). Alias voor System.Object. Kan waarden van elk type toewijzen na conversie.
- Boxing: value type → object type
- Unboxing: object type → value type
object obj; obj = 100; // boxing
Dynamic Type
Kan elke waarde opslaan. Type checking at runtime.
dynamic= value;
dynamic d = 20;
Verschil met object: type checking bij object = compile time, bij dynamic = runtime.
String Type
Toewijzen van string waarden. Alias voor System.String, afgeleid van object. Twee literal vormaten:
- Quoted:
"Tutorials Point" - @Quoted (verbatim):
@"Tutorials Point"
Gebruiker-gedefinieerde referentie types: class, interface, delegate (later besproken).
Pointer Types
Opslaan van geheugenadres van ander type. Vergelijkbaar met C/C++ pointers.
type* identifier;
char* cptr; int* iptr;
Wordt behandeld in hoofdstuk 'Unsafe Codes'.
C Taal
- Vier Belangrijke Goot-Aandrijvingstypen voor Bevestigingsmiddelen Uitgelegd
- Thermokoppels Uitgelegd: Typen, Bereiken en Prestatievergelijking
- C# Variabelen & Primitive Datatypes onder de knie krijgen: Complete gids
- C# type conversie: implicit, explicit, Parse en Convert methodes
- C++ datatypes begrijpen: fundamentals, modifiers en best practices
- C Datatypes Uitgelegd: int, float, char en Meer – Een Complete Gids
- C++ Char Datatype: Declaratie, ASCII en Conversie‑Technieken
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Type Conversie & Casting onder de knie krijgen: Een uitgebreide gids
- Java primitieve datatypes: complete gids met voorbeelden
- Java Type Casting: Van widening tot narrowing en verder