← C#/De eerste bouwstenen
Les 3 van 3
MODULE 01 · 03◷ 16 min

Maak tekst persoonlijk

Na deze les kun je
  • Een waarde in tekst invoegen
  • Tekst en een berekening combineren

Een sportclub verstuurt een bericht met de naam van een deelnemer en het aantal minuten van de volgende training. Die gegevens kunnen veranderen terwijl de zin dezelfde vorm houdt. Met geïnterpoleerde tekst zet je de veranderlijke delen precies waar de lezer ze nodig heeft.

Tekst onder een naam

Het type string gebruik je voor tekst. string athlete = "Lina"; maakt een variabele met de naam athlete en de tekstwaarde Lina. De aanhalingstekens begrenzen de vaste tekst in de code en verschijnen niet in de uitvoer.

Een variabelenaam gebruik je zonder aanhalingstekens wanneer je haar bewaarde waarde wilt lezen. Dat werkt bij tekst net als bij de getallen uit de vorige les. Console.WriteLine(athlete); toont hier dus de naam van de deelnemer.

Invulplaatsen in een zin

Interpolatie betekent hier dat C# waarden invoegt in een vaste tekst. Een gewone geïnterpoleerde string begint met $ direct vóór het dubbele aanhalingsteken. Binnen de tekst markeren accolades { en } de invulplaatsen.

Bij $"Hoi, {athlete}!" wordt de naam athlete binnen de accolades gelezen. De vaste delen Hoi, en ! blijven staan en de bewaarde waarde komt ertussen. De accolades zelf worden niet afgedrukt.

De tekst buiten de accolades moet je precies schrijven zoals de lezer haar moet zien. Zet daarom zelf een spatie na de komma. Interpolatie vult waarden in, maar voegt geen ontbrekende leestekens of spaties toe.

Een berekening invoegen

Binnen een invulplaats mag ook een expressie staan: een stukje code dat een waarde oplevert. Een variabelenaam is zo'n expressie, maar een berekening zoals minutes + 5 ook. C# bepaalt eerst de uitkomst en voegt daarna de tekstweergave ervan in de zin in.

Bekijk in het voorbeeld welke delen vaststaan en welke uit gegevens worden gemaakt. Voorspel de trainingsduur en voer het programma uit.

Een persoonlijk trainingsbericht
using System;

string athlete = "Lina";
int minutes = 20;
Console.WriteLine($"Hoi, {athlete}!");
Console.WriteLine($"Volgende training: {minutes + 5} minuten.");
Console.WriteLine(minutes);
Verwachte uitvoer
Hoi, Lina!
Volgende training: 25 minuten.
20
TekstdeelWat de lezer te zien krijgt
Hoi, De vaste begroeting, inclusief spatie.
{athlete}De waarde Lina.
{minutes + 5}De berekende waarde 25.
minuten.De vaste eenheid en punt.

De berekening in de zin verandert minutes niet. De laatste uitvoerregel van het voorbeeld toont daarom nog de oorspronkelijke twintig minuten. Dit sluit aan op het verschil tussen een waarde berekenen en een waarde toekennen.

Veelgemaakte fout: het dollarteken vergeten

Zonder de $ is dit een gewone string. De namen en berekeningen tussen accolades worden dan niet ingevuld; het zijn letters in de tekst. Voer de foutvariant uit en kijk of de deelnemer een bruikbaar trainingsbericht krijgt.

Veelgemaakte fout
using System;

string athlete = "Lina";
int minutes = 20;
Console.WriteLine("Hoi, {athlete}!");
Console.WriteLine("Volgende training: {minutes + 5} minuten.");
Verwachte uitvoer
Hoi, {athlete}!
Volgende training: {minutes + 5} minuten.

Je ziet letterlijk {athlete} en {minutes + 5}. De code is geldig, maar er heeft geen interpolatie plaatsgevonden. De reparatie is het dollarteken vóór het openende aanhalingsteken van beide berichten zetten.

Maak een begroeting en een volgende stap

De oefening geeft de naam name en het aantal afgeronde lessen lessons. Maak de begroeting met een invulplaats voor de naam. Gebruik voor het volgende lesnummer een invulplaats waarin je de benodigde optelling uitvoert.

Controleer de vaste tekst en de invulplaatsen afzonderlijk. Als een naam letterlijk tussen accolades verschijnt, controleer dan de $; als alleen een getal verkeerd is, lees dan de berekening. Beide fouten kunnen een andere oorzaak hebben terwijl de rest van je zin al klopt.

AAN DE SLAG 0/2
1

De eerste stap

Gebruik name om de begroeting Welkom, Sam! op de eerste regel te tonen.

2

Nog een stap verder

Gebruik lessons om Volgende les: 5 op de tweede regel te tonen. Tel er eerst één bij op.

Wat je meeneemt

  • string bewaart tekst en $ schakelt hier interpolatie in.
  • Tussen accolades staat de naam of berekening die een waarde oplevert.
  • De vaste tekst bepaalt spaties en leestekens; de ingevulde waarde komt uit je code.

Je kunt nu tekst tonen, rekenen en beide combineren. In een volgende module kies je met voorwaarden welke instructies nodig zijn.

Program.cs
UitvoerConsole
›
›_

Hier komt je resultaat.

Voer je code uit en ontdek
wat je hebt gemaakt.

0/2 stappen
EVEN MEEKIJKEN

Bekijk hoe het kan.

Je mag de oplossing bekijken. Deze poging telt dan niet mee als afgeronde les. Met Reset kun je daarna opnieuw zelf oefenen.