我已经创建了一个枚举Direction
,如下所示:
enum Direction { Up, Down, Left, Right }
现在,这些方向可以通过箭头按键来调用。我现在在
KeyDown
事件中具有的内容是:if (e.KeyCode == Keys.Up)
{
moveDirection = Direction.Up;
}
else if (e.KeyCode == Keys.Left)
{
moveDireciton = Direction.Left;
}
else if ...
是否可以创建自己的像
(Direction)Keys.Up
这样的演员表?我知道我可以创建一个静态方法
static Direction CastKeysToDirection(Keys k);
,对此我很好,但是我很好奇是否有一种方法可以在c#中实现我们自己的强制转换? 最佳答案
如果您将枚举定义为
enum Direction {
Up = Keys.Up,
Down = Keys.Down,
Left = Keys.Left,
Right = Keys.Right
}
那么您的强制转换
(Direction)Keys.Up
应该基于以下事实起作用:Keys.Up
的基础数值与Direction.Up
的基础数值相同。但是,令人遗憾的是,您无法像在
explicit
上那样在impilcit
上提供真实的enum
或class
强制转换。关于c# - 将Keys对象转换为枚举Direction对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15091805/