2015-04-21 48 views
2

无论我做什么,我的第一个Console.Readline条目都将我从控制台中解放出来。无论我在调试还是发布,都会发生这种情况。ReadLine()关闭我的控制台

我拿过去我的WriteLine

("Which Room Would you like to Trigger? \nRoom 1001 or Room 1002") 

和,只要我打的ReadLine控制台关闭。

我仍然在学习C#,但我从来没有遇到Python raw_input(prompt)的问题,我假设它与C#ReadLine等效。

我的代码如下。

bool loopChk = true; 

     do 
     { 
     Console.WriteLine("Which Room Would you like to Trigger? \nRoom 1001 or Room 1002"); 
     string line = Console.ReadLine(); 
     if (line == "1001") 
     { 
      await objClient.WritePropertyAsync(fqrs[0], "Present Value", a_bOn ? "on" : "off", CancellationToken.None); 
      Console.WriteLine("You have Triggered Room 1001"); 
     } 
     else if (line == "1002") 
     { 
      await objClient.WritePropertyAsync(fqrs[1], "Present Value", a_bOn ? "on" : "off", CancellationToken.None); 
      Console.WriteLine("You have Triggered Room 1002"); 
     } 
     else if (line == "exit") 
     { 
      break; 
     } 
     } while (loopChk); 
+0

把一个'到Console.ReadLine()''该做,while'循环之后。 –

+0

@jsve只要我输入一个值并按下输入关闭,就不会执行任何操作。 – Phi

+0

这就是它应该做的。这不是你想要的吗?等到用户在退出程序之前按下Enter键?我想我不太理解你的问题。 –

回答

0

试试这个:

string line = null; 

do { 
    Console.WriteLine("Which Room Would you like to Trigger? \nRoom 1001 or Room 1002"); 
    line = Console.ReadLine(); 

    if (line == "1001") 
    { 
     await objClient.WritePropertyAsync(fqrs[0], "Present Value", a_bOn ? "on" : "off", CancellationToken.None); 
     Console.WriteLine("You have Triggered Room 1001"); 
    } 
    else if (line == "1002") 
    { 
     await objClient.WritePropertyAsync(fqrs[1], "Present Value", a_bOn ? "on" : "off", CancellationToken.None); 
     Console.WriteLine("You have Triggered Room 1002"); 
    } 
} while (line != "exit") 
+0

仍然不起作用。 – Phi

+0

当你一行一行地完成代码时会发生什么? –

+0

你也可以尝试注释掉'await'这两行,看看是否有所作为。 –