TOC

This article is currently in the process of being translated into Dutch (~86% done).

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);
}

Under the helmet, a char is a numerical value, where each character has a specific number in the Unicode "alphabet". As of writing, there are more than 130.000 different Unicode characters, ranging from the Latin/western alphabet to historical scripts. So, in C#, you can very easily go from a char data type to its numeric representation, as illustrated by this slightly extended version of the previous example:

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!