TOC

This article has been localized into Dutch by the community.

Data types:

Het Char type

Het System.Char data type wordt gebruikt om een enkel Unicode karakter te bewaren. C# heeft daar een alias voor, de Char, deze kan je gebruiken om Char variabelen te definiëren.

char ch;

En ook bij dit data type kan je onmiddelijk een waarde toekennen bij het definiëren als je dat wenst. In C# wordt een Char ingesloten met een set enkele quotes:

char ch = 'H';

Aangezien een string (we bespreken deze in het volgende hoofdstuk) in essentie een opeenvolging is van een hoop karakters, gebruikt .NET eigenlijk een lijst met char's om een string weer te geven. Dat wil ook zeggen dat je één enkele char uit een string kan halen, of met een lus door een string kan lopen om elk karakter als char uit de string kan halen:

string helloWorld = "Hello, world!";
foreach(char c in helloWorld)
{
    Console.WriteLine(c);
}

Een char is een numerieke waarde, waarbij elk karakter (letter) een specifiek nummer heeft in het Unicode "alfabet". Er zijn meer dan 130.000 different Unicode characters, variërend van het Latijn/westers alfabet tot aan historische geschriften. Dus in C# kun je gemakkelijk van een char data type naar zijn numerieke representatie gaan, zoals te zien is bij deze lichtelijk uitgebreide versie van het vorige voorbeeld:

string helloWorld = "Hello, world!";
foreach(char c in helloWorld)
{
    Console.WriteLine(c + ": " + (int)c);
}

Dit zal als output elk karakter in onze string geven, gevolgd door de numerieke weergave, simpelweg door onze char als een integer te casten. Dit wil ook zeggen dat je dit makkelijk op de omgekeerde manier kan: van een nummer terug naar een karakter. Waarom zou je dit willen doen? Er zijn een groot aantal karakters die niet beschikbaar zijn op de meeste keyboards, zoals het copyright (©) karakter. Je kan volgende table Unicode lookup table gebruiken om de numerieke waarde te vinden van het karakter dat je nodig hebt, en dit dan converteren naar een char:

char ch = (char)169;
Console.WriteLine(ch);

Char hulpmethoden

De Char klasse heeft een aantal zeer handig helpmethoden, die je kunnen helpen om het type char waar je op dit moment mee werkt te identificeren. Dit is in bepaalde situatie zeer handig, bijvoorbeeld als je input wilt valideren. Hier heb je een voorbeeld:

Console.WriteLine("Enter a single number:");
char ch = Console.ReadKey(true).KeyChar;
if (Char.IsDigit(ch))
    Console.WriteLine("Thank you!");
else
    Console.WriteLine("Wrong - please try again!");

In dit voorbeeld lees ik het eerste karakter dat wordt ingegeven door de gebruiker en dan gebruik ik de Char.IsDigit() methode om te kijken of de input een getal is of niet. Er zijn een heleboel gelijkaardige methoden om het type van een karakter te controleren. We kunnen dit gebruiken om een string te valideren:

Console.WriteLine("Write your name:");
string name = Console.ReadLine();  
bool isValid = true;  
for(int i = 0; i < name.Length; i++)  
{  
    char ch = name[i];  
    if((i == 0) && ((!Char.IsLetter(ch)) || (!Char.IsUpper(ch))))  
    {  
Console.WriteLine("The first character has to be an uppercase letter!");  
isValid = false;  
break;  
    }  
    if(Char.IsDigit(ch))  
    {  
Console.WriteLine("No digits allowed!");  
isValid = false;  
break;  
    }  
}  
if (isValid)  
    Console.WriteLine("Hello, " + name);

We lussen door de naam ingegeven door de gebruiker en gebruiken verscheidene Is* methoden om te controleren of de input voldoet aan onze vereisten. Er zijn nog meer nuttige methoden, zoals de Char.IsLetterOrDigit() methode. Je kan hier een volledige lijst terugvinden.

Samenvatting

Het char data type (alias voor System.Char) wordt gebruikt om één enkel Unicode karakter weer te geven. Om meer dan één karakter weer te geven gebruik je een string, die eigenlijk bestaat uit een lijst van char's. In het volgende hoofdstuk bespreken we strings.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!