Gebruikersinvoer accepteren
Tip
Zie het tabblad Tekst en afbeeldingen voor meer informatie.
Programma's worden echt krachtig wanneer ze kunnen communiceren met de mensen die ze gebruiken. Met de methode C Console.ReadLine() # kunt u uw programma onderbreken, wachten tot de gebruiker iets typt en die informatie vastlegt.
Console.ReadLine() gebruiken
U kunt de Console.ReadLine() methode beschouwen als een vraagprompt. Wanneer uw programma deze regel bereikt, wacht het totdat de gebruiker het antwoord typt en drukt op Enter voordat u doorgaat.
Als u het antwoord van de gebruiker wilt opslaan, moet u het 'vangen' met behulp van een variabele:
string favoriteColor = Console.ReadLine();
Console.WriteLine("Oh, I love " + favoriteColor + " too!");
In deze code favoriteColor is een variabele (een container die een waarde bevat). Wanneer u dit programma uitvoert, wacht het op invoer. Als de gebruiker typt Orange en op Enter drukt, is de uitvoer:
Orange
Oh, I love Orange too!
U kunt deze code zelf uitvoeren in de C#-code-editor.
Een spatie toevoegen aan het einde van de prompt
Als u de gebruikersinvoer beter leesbaar wilt maken, combineer Console.Write() met Console.ReadLine():
Console.Write("What is your favorite color? ");
string favoriteColor = Console.ReadLine();
Console.WriteLine("Oh, I love " + favoriteColor + " too!");
Let op de spatie aan het einde van de prompt: "What is your favorite color? ". Zonder dat zou de invoer van de gebruiker vastgeplakt lijken aan je tekst: What is your favorite color?Orange Door een spatie toe te voegen, wordt deze duidelijker.
Informatie over gegevenstypen
Elke waarde in C# heeft een gegevenstype, waarmee de computer weet wat voor soort waarde het is. Enkele veelvoorkomende gegevenstypen zijn:
-
Tekenreeks (
string): Tekst tussen aanhalingstekens, zoals"Blue"of"25". Zelfs een getal wordt tekst wanneer deze tussen aanhalingstekens staat. -
Geheel getal (
int): een geheel getal zonder aanhalingstekens, zoals25of100. U kunt er wiskunde mee doen.
Waarom is dit belangrijk? C# behandelt deze typen anders. U kunt getallen bij elkaar optellen (25 + 1 gelijk aan), 26maar u kunt een getal niet rechtstreeks toevoegen aan tekst zonder speciale verwerking.
Console.ReadLine() retourneert altijd een tekenreeks
Een essentiƫle regel om te onthouden is dat Console.ReadLine()altijd tekst (een tekenreeks) retourneert, zelfs als de gebruiker een getal typt. Voorbeeld:
string age = Console.ReadLine();
Console.WriteLine(age + 1); // This causes an error!
Als u deze code uitvoert en 25 typt, zal het programma 26 niet tonen. In plaats daarvan probeert het 1 toe te voegen aan tekst "25", wat C# niet toestaat. Dit is een veelvoorkomende beginnersfout!
Als u wiskunde wilt uitvoeren met gebruikersinvoer, moet u de tekst eerst converteren naar een getal, maar dat wordt later besproken. Onthoud voorlopig: alles wat de gebruiker typt, wordt altijd als tekst behandeld.