C# 4.0 如何获得方法和KeyEventArgs之间的交互?
我试图学习编程是为了好玩(如果我弄错了术语,请提前道歉),并且发现了一个我正在努力解决的问题。我一直在尝试让一个程序与按下的键进行交互(例如:按下“空格”,控制台将打印“hello world”),但无法让事件和方法进行交互 我做错了什么;这是我错过的一个简单步骤,还是我的结构完全错了 谢谢大家! 代码 从这个开始:C# 4.0 如何获得方法和KeyEventArgs之间的交互?,c#-4.0,methods,C# 4.0,Methods,我试图学习编程是为了好玩(如果我弄错了术语,请提前道歉),并且发现了一个我正在努力解决的问题。我一直在尝试让一个程序与按下的键进行交互(例如:按下“空格”,控制台将打印“hello world”),但无法让事件和方法进行交互 我做错了什么;这是我错过的一个简单步骤,还是我的结构完全错了 谢谢大家! 代码 从这个开始: public bool dKey_KeyDown() { var key = Console.ReadKey(); if (key == ConsoleKey.D) {
public bool dKey_KeyDown()
{
var key = Console.ReadKey();
if (key == ConsoleKey.D)
{
return true;
}
else
{
return false;
}
}
你发布的代码根本不起作用 首先,调用dKey_KeyDown时不带任何参数,但此方法的声明需要两个参数,
objectsender
和KeyEventArgs e
,因此代码甚至无法编译,更不用说运行了
第二,看起来您可能已经从Windows窗体编码中的一些示例代码中复制并粘贴了此代码;在这种情况下,sender
和e
由表单代码提供,作为其事件处理机制的一部分。这里我不详细介绍,但它在控制台应用程序中不起作用。您可以阅读更多有关它的信息
为了帮助你,这里有一个简单的程序,它使用
最后,祝贺你决定从事编程工作!坚持下去,你会很高兴你做到了:)你的代码根本无法工作……没有代码可以接收输入。。。。查找System.Console.ReadKey()非常感谢;还有你的半正确;我基本上是在使用试错法和谷歌fu来尝试解决问题(到目前为止一直很有效;/),所以我认为“e”和“sender”是争论的焦点:p。非常感谢你。我期待着用它来做实验,找出它背后的机制:)没问题……你也可以到这里来:因为他们有一些不错的C#初学者教程,别忘了更新有用的答案!:)谢谢你,我会的
public bool dKey_KeyDown()
{
var key = Console.ReadKey();
if (key == ConsoleKey.D)
{
return true;
}
else
{
return false;
}
}
using System;
namespace SimpleKey
{
class Program
{
static void Main(string[] args)
{
//make a variable to store the input from the user's keypress
ConsoleKeyInfo input = new ConsoleKeyInfo();
//keep executing the code inside the block ({..}) until the user presses the Spacebar
while (input.Key != ConsoleKey.Spacebar)
{
Console.WriteLine("Press SpaceBar...");
input = Console.ReadKey();
}
//now they have pressed spacebar, so display the message
Console.WriteLine("Hello World");
}
}
}