Я бы go указывал, что Магнетрон указал в комментариях, если вы отчаянно нуждаетесь в чем-то, что использует троичный, но реально нет никакого смысла в организации кода, который вы имеете / настройте сообщение, если вы Вы будете использовать l oop до тех пор, пока оно не будет действительным, потому что вы не используете сообщение, которое вы установили! Это означает, что к тому моменту, когда код достигнет точки, в которой сообщение может быть использовано для чего-либо, он обязательно должен иметь значение «Действительный номер»
Как насчет:
Console.WriteLine("Enter number:");
string num = Console.ReadLine();
while(!ValidNumber(num)){
Console.WriteLine("Invalid number, try again:");
num = Console.ReadLine();
}
string message = "Number valid";
Или лучше:
private string Ask(string question){
Console.WriteLine(question);
return Console.ReadLine();
}
...
string num = Ask("Enter number:");
while(!ValidNumber(num))
num = Ask("Invalid number, try again:");