C# 4 可选空事件处理程序



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

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

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

错误 51 类型"System.EventHandler"必须是不可为空的值 类型,以便在泛型类型或方法中将其用作参数"T" "系统.可为空"

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

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

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

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

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

您不需要使EventHandler可为空。删除定义中的?

异常指出System.EventHandler必须是不可为空的值类型。由于EventHandler是一个类或引用类型,因此它显然不能是值类型,并且按照约定可为空。

相关内容

  • 没有找到相关文章

最新更新