我可以在 KeyCode 的切换类型中使用多态性吗

Can I use Polymorphism in switching types for KeyCode

我读到了有关 Anti-If 运动的信息。大部分说用Polymorphism代替conditional

那么,在 KeyDown 事件(在 WinForms 中)的 KeyEventArgs 中切换 KeyCode 等类型时,我是否应该始终使用多态性?

我一直使用这种代码。

   If e.KeyCode = Keys.F1 Then
      'Do F1 things
   ElseIf e.KeyCode = Keys.F2 Then
      'Do F2 things
   End If

不好吗?如果是(哦,另一个 IF),你能给我一个多态方法的例子吗..

根据您使用的语言和您的具体用例,一种方法可以创建一个地图,其中键是您的 keyCodes,值是函数指针,以及需要执行的操作。

更好的是,您可以多做一个间接级别,其中您的值是某种 Action 对象,每个对象都知道如何执行。这样,您可以重用代码在许多不同的上下文中触发相同类型的功能。