-3

我正在尝试休息;出于沮丧。我需要在控制台中了解事件处理程序吗?

无限循环

4

3 回答 3

6

capslock在进入循环之前, 您只需设置一次的值。bool是一个值类型,所以你得到一个属性的副本Console.CapsLock,而不是对它的引用。在第一次分配之后,您的变量永远不会改变值。你想要的是这样的:

while(Console.CapsLock)
{
    // inform user, perhaps remove the loop and just tell them once
}

或者

capslock = Console.CapsLock;
while(capslock)
{
    Console.WriteLine("CapsLock on");
    capslock = Console.CapsLock;
}

附带说明一下,在循环中尽可能快地编写消息可能是一个坏主意,因为它只会在用户有机会做任何事情之前填满屏幕。

于 2013-07-27T20:47:37.273 回答
1

不回答您的原始问题,但您检查大写锁定的原因似乎是您希望以全小写形式输入的用户名,因此您可以users.Contains(username)在屏幕截图中提供的下方执行类似操作或类似操作。

更好的方法是使用 contains 重载,让您设置比较器,然后使用不区分大小写的字符串比较器进行测试。

if(users.contains(username, StringComparer.OrdinalIgnoreCase))
{
    //username existed
}
else
{
   //username did not exist
}

String.Equals有类似的重载,可以让你忽略大小写

//This would return true if "username = marietjie" and "testUsername = MARIETJIE"
if(username.Equals(testUsername, StringComparison.OrdinalIgnoreCase))
{
    //username matched
}
else
{
   //username did not match
}
于 2013-07-27T21:47:32.083 回答
-4

此类问题的解决方法!!

这有效!

于 2013-07-27T21:00:51.127 回答