3

我正在尝试编写一个具有可选 EventHandler 参数的方法。它目前看起来像这样:

public void AddItemToMainMenu(MenuItem parentMenu, MenuItems item, String menuItemText, bool isChecked, EventHandler? eventHandler = null)

错误发生在最后一个参数上,它指出:

错误 51 类型“System.EventHandler”必须是不可为空的值类型,才能将其用作泛型类型或方法“System.Nullable”中的参数“T”

编辑:我已经删除了?现在收到一个非常相似的错误,我还对另一个参数进行了不重要的更改。现在内容如下:

 public void AddItemToMainMenu( MenuItems item, String menuItemText, bool isChecked, EventHandler eventHandler = null, MenuItem? parentMenu = null)

错误 41 类型“System.EventHandler”必须是不可为空的值类型,才能将其用作泛型类型或方法“System.Nullable”中的参数“T”

4

2 回答 2

3

EventHandler 是一个引用类型,因此本质上是可以为空的。应该:

public void AddItemToMainMenu(MenuItem parentMenu, MenuItems item, String menuItemText, bool isChecked, EventHandler eventHandler = null)
于 2012-06-19T05:22:57.013 回答
1

你不需要使EventHandlernullable。删除?定义中的 。

异常说System.EventHandlermust be an non-nullable value type。由于EventHandler是类或引用类型,它显然不能是值类型,并且按照惯例可以为空。

于 2012-06-19T05:22:00.447 回答