TOC

This article has been localized into Dutch by the community.

Het begin:

Hello world, uitleg

In het vorige hoofdstuk hebben we geprobeerd om een stukje tekst weer te geven op het scherm (console), dat was je eerste C# applicatie. Om echte vorderingen te kunnen zien zijn we niet zeer diep ingegaan op de exacte code die we gebruikt hebben, dus in dit hoofdstuk volgt een verdere toelichting op het "Hello world!" voorbeeld. Zoals je waarschijnlijk al hebt gezien in de code vertonen sommige regels overeenkomsten, deze zullen we groeperen en per groep nader toelichten. Laten we starten met de kortste en de meest gebruikte code: De { en }. Deze tekens worden Accolades of ook wel krulhaakjes genoemd en geven het begin en einde van een stuk code aan. Deze tekens worden in veel programmeer talen gebruikt, waaronder C++, Java, JavaScript en vele andere. Zoals je in de code kan zien worden ze gebruikt om bij elkaar horende regels code te omsluiten, dit helpt ook bij het overzicht houden over je code. In latere voorbeelden word het nader toegelicht.

Laten we met de eerste regel beginnen:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using is een zogenaamd 'keyword', vetgedrukt door de gebruikte editor. Met het using keyword wordt een 'namespace' of benamingsruimte geïmporteerd. Een namespace is op zijn beurt een verzameling van 'classes'. Een class representeert een stukje functionaliteit en als je met een geavanceerde ontwikkelomgeving als Visual Studio werkt, worden een aantal stukken van de standaard code automatisch gegenereerd. In het voorbeeld worden een aantal classes gegenereerd, en worden de doorgaans meest gebruikte namespaces al geïmporteerd. In dit geval worden er 5 namespaces geïmporteerd, met elk een aantal veel gebruikte classes. Zo wordt met de eerste regel de namespace System geïmporteerd, die de class Console bevat.

Aan de andere kant wordt bijvoorbeeld de namespace System.Linq nog niet gebruikt in onze eerste applicatie. Dus de puristen onder ons kunnen ervoor kiezen om die regel te verwijderen uit de code, maar op dit moment maakt het weinig verschil.

Zoals je ziet, hebben we zelfs onze eigen namespace gekregen:

namespace ConsoleApp1

De namespace ConsoleApp1 is nu de hoofd namespace voor deze applicatie, en nieuwe classes worden automatisch hieraan toegevoegd. Uiteraard kan dit gewijzigd worden, als je nieuwe classes aan een andere namespace wilt toevoegen. In dat geval kun je bijvoorbeeld een nieuwe namespace nesten onder de hoofd namespace, of andere namespaces importeren met het using commando, zoals eerder gezien.

Vervolgens declareren we onze class. Aangezien C# een Object Oriented programmeer taal is, zal elke regel code die een opdracht uitvoert met een class geassocieerd zijn. De in het voorbeeld gebruikte class heet simpelweg Program:

class Program

Meestal zullen er meerdere classes zijn binnen dezelfde file. In dit voorbeeld gebruiken we maar 1 class. Een class kan meerdere variabelen, eigenschappen en methoden bevatten, op deze concepten wordt later dieper in gegaan. De class in dit voorbeeld bevat slechts 1 methode en verder niets. De methode wordt als volgt gedeclareerd:

static void Main(string[] args)

Deze regel is wellicht de meest gecompliceerde uit dit voorbeeld, vandaar dat we hem ophakken in kleine stukjes. Het eerste woord is static. Het keyword static geeft aan dat deze methode aangeroepen kan worden zonder vooraf een instantie van deze class te creëren. Daarover later meer, in het hoofdstuk dat classes behandelt.

Het volgende keyword is void, en geeft aan wat voor soort resultaat deze methode oplevert. Dat kan bijvoorbeeld een integer zijn, of een tekst string, maar in dit geval levert de methode een lege uitkomst op, wat in C# wordt aangegeven met het woord void. (void is Engels voor leeg, niets)

Het volgende woord is Main wat simpelweg de naam van deze methode is. Deze methode vormt het beginpunt in ons programma, dat wil zeggen het eerste stukje code dat uitgevoerd gaat worden, en in ons voorbeeld ook het enige.

De naam van de methode kan gevolgd worden door een of meerdere argumenten, die weergegeven worden tussen haakjes. In ons voorbeeld heeft de methode slechts 1 argument, genaamd args. Het type van dit argument is een string of om precies te zijn een reeks van strings, maar daarover later meer. Goed beschouwd is dit logisch, omdat Windows programma's gewoonlijk aangeroepen kunnen worden met een optionele set argumenten. Deze argumenten worden dus als een reeks strings aan onze methode doorgegeven.

En dat is alles. Je hebt nu zowel het basis begrip van onze eerste C# applicatie, alsmede de basis principes van scherm invoer/uitvoer.