Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何获得方法和KeyEventArgs之间的交互?_C# 4.0_Methods - Fatal编程技术网

C# 4.0 如何获得方法和KeyEventArgs之间的交互?

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) {

我试图学习编程是为了好玩(如果我弄错了术语,请提前道歉),并且发现了一个我正在努力解决的问题。我一直在尝试让一个程序与按下的键进行交互(例如:按下“空格”,控制台将打印“hello world”),但无法让事件和方法进行交互

我做错了什么;这是我错过的一个简单步骤,还是我的结构完全错了

谢谢大家!

代码

从这个开始:

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");
        }
    }
}