Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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#中的一个简单变量问题?_C#_Virtual Keyboard - Fatal编程技术网

如何解决C#中的一个简单变量问题?

如何解决C#中的一个简单变量问题?,c#,virtual-keyboard,C#,Virtual Keyboard,我试图用字符串作为变量来修复我的C#项目中的一行代码,但它给了我一个错误,我尝试了几种方法来修复它,但我无法找到解决方案?你有什么建议来解决我的问题 //The problem. string Key1; string KeyHelper; KeyHelper = "VirtualKeyCode.VK_"; Key1 = KeyHelper+"W"; while(true)

我试图用字符串作为变量来修复我的C#项目中的一行代码,但它给了我一个错误,我尝试了几种方法来修复它,但我无法找到解决方案?你有什么建议来解决我的问题

//The problem.

            string Key1;
            string KeyHelper;
            KeyHelper = "VirtualKeyCode.VK_"; 
            Key1 = KeyHelper+"W";

         while(true)
            {
               sim.Keyboard.KeyDown(Key1);               
            }

//The Result I want to reach.

sim.Keyboard.KeyDown(VirtualKeyCode.VK_W);
这是visual studio给我的错误:

Argument 1: cannot convert from 'string' to 'WindowsInput.Native.VirtualKeyCode'

您从字符串开始,并试图将其传递给接受枚举的方法。因此,您需要使用
Enum.Parse()
。请记住,
Enum.Parse()
返回
object
,因此需要将结果强制转换为正确的枚举类型

更改此项:

sim.Keyboard.KeyDown(Key1);
为此:

sim.Keyboard.KeyDown((VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), Key1));

错误消息非常清楚,不言自明。
字符串
不是
VirtualKeyCode
。这是一根绳子。它们甚至不是一回事。您需要
Enum.Parse(typeof(VirtualKeyCode),“VK_W”)
以及如何修复它,毕竟这就是我的问题所在,我理解错误。我尝试了Mathias方法,但visual studio抛出以下问题:参数1:无法从“object”转换为“WindowsInput.Native.VirtualKeyCode”