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