ben böyle bir şey düşünün:C# içindeki komutları sürekli olarak nasıl denetlerim?
prompt> checkprice
price of foo is 42$
prompt>
birden komutları çalıştırın.
ben böyle bir şey düşünün:C# içindeki komutları sürekli olarak nasıl denetlerim?
prompt> checkprice
price of foo is 42$
prompt>
birden komutları çalıştırın.
şey gibi:
while(true) {
Console.Write("prompt>");
var command = Console.ReadLine();
if (command == "command1") doSomething();
else if (command == "command2") doSomethingElse();
...
else if (command == "quit") break;
}
Neden başka bir "else if" kullanıyorsunuz? Siz sadece şunu yapabilirsiniz: ((command = Console.ReadLine(). ToLower())! = "Quit") {'(bu, döngüden önce" komutu "bildirmeniz gerektiği anlamına gelir). --- Ayrıca, büyük harf duyarlı komutlar için .ToLower() '. –
@visualvincent Evet, bunu yapabilirsin. Ben şahsen bundan hoşlanmıyorum çünkü 1) döngü dışında (ve dolayısıyla gerçek kapsamının dışında) 2) komutu açıklamak zorundasınızdır, çünkü bir şekilde çok okunabilir değildir. – derpirscher
** 1) ** Nokta. Her ne kadar önemli değil. ** 2) ** Bence bu şekilde daha okunabilir hale geliyor. ;) - ** ** '.ToLower()' hala kullanılmaya devam etse de, programınız hala "QUIT" veya "qUiT" vb. –
Do tipi dek "exit" gibi spesifik bir komut ise:
static void Main(string[] args) {
var line = System.Console.ReadLine().Trim();
while(line!="exit") {
myOperationCommand(line);
line = System.Console.ReadLine().Trim(); // read input again
}
System.Console.WriteLine("End!\n");
}
// Do some operation...
static void myOperationCommand(string line) {
switch(line) {
case "checkprice":
System.Console.WriteLine("price of foo is 42$");
break;
default:
System.Console.WriteLine("Command not reconized: " + line);
break;
}
}
Belki bu
//this is your price variable
static int price = 42;
//function to check it
static void CheckPrice()
{
Console.WriteLine("price of foo " + price + "$");
}
static void Main()
{
bool exit = false;
do
{
//write at begin ">"
Console.Write(">");
//wait for user input
string input = Console.ReadLine();
// if input is "checkprice"
if (input == "checkprice") CheckPrice();
if (input == "exit") exit = true;
} while (!exit);
}
Eğer bilmiyorsanız nasıl kelime için doğru şekilde, benim ve başkaları için sorununuzu nasıl anlayabileceğinizi hayal edin ... –