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

Posted

技术标签:

【中文标题】如何解决 C# 中的简单变量问题?【英文标题】:How to fix a simple variable problem in C#? 【发布时间】:2019-09-08 03:03:52 【问题描述】:

我正在尝试使用 String 作为变量在 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'

【问题讨论】:

错误信息非常清晰且不言自明。 string 不是 VirtualKeyCode。这是一个字符串。他们甚至不是一回事。 你想要Enum.Parse(typeof(VirtualKeyCode), "VK_W") 我该如何解决它,毕竟这是我的问题,我理解错误。 我尝试了 Mathias 方法,但 Visual Studio 抛出以下内容:参数 1:无法从 'object' 转换为 'WindowsInput.Native.VirtualKeyCode' 【参考方案1】:

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

改变这个:

sim.Keyboard.KeyDown(Key1);

到这里:

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

【讨论】:

以上是关于如何解决 C# 中的简单变量问题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objectarx C# 中将椭圆转换为折线

C# 如何遍历一个解决方案中的所有窗体(高手指教)

如何解决此 C# 代码中的 CORS 错误?

如何解决方法c#中的谓词错误

如何解决具有两个以上值的因变量的分类问题

如何从 C# 中的另一个私有类调用私有类变量