Skip to content

Instantly share code, notes, and snippets.

@s0ren
Created October 7, 2016 09:32
Show Gist options
  • Save s0ren/a6dbaba8ffff43c1dc865279bd0248c6 to your computer and use it in GitHub Desktop.
Save s0ren/a6dbaba8ffff43c1dc865279bd0248c6 to your computer and use it in GitHub Desktop.
Indlæs tal fra Console.ReadLine(). TryParse med det hele
namespace GamleOle
{
class Program
{
static void Main(string[] args)
{
Console.Write("Indtast din alder: ");
//double alder = Convert.ToDouble(Console.ReadLine());
double alder;
while (!Double.TryParse(Console.ReadLine(), out alder))
{
Console.WriteLine("Du har tastet noget der ikke er tal. Indtast din alder, igen: ");
}
Console.WriteLine("Alder: " + alder);
}
}
}
@s0ren
Copy link
Author

s0ren commented Oct 7, 2016

Overfør tal fra brugerens indtastning uden problemer,

også hvis brugeren taster forkert.

Jeg bruger TryParse() som er en metode der findes på alle tal typerne Int16/Int32/Int64 og Float, Double of Decimal.
TryParseer lidt special fordi den ikke returnerer det tal man for ud af at konvertere teksten til tal. Der hvor vi skal have tallet til at "lande" skal angives som nr. 2 parameter, med nøgleordet out foran. Se linie 10. Første parameter er den tekst der skal konverteres til tal.

Uden om kaldet til TryParse, har jeg sat et while-loop fordi jeg gerne vil blive ved med at bede brugeren om at taste rigtigt, ind til vi får er brugbart tal. TryParse returnerer nemlig trueeller false, alt efter om konverteringen lykkes eller ikke gør. Jeg vil gerne fortsætte while-loop'et indtil det er i orden, derfor vender jeg TryParse's retur-værdi med udråbstegnet (!). Altså: så længe der IKKE bliver tastet et gyldigt tal, bliv ved med at skrive "prøv igen", og indlæs og test igen om det er gyldigt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment