Visual studio 2010 C#4可选的空事件处理程序

Visual studio 2010 C#4可选的空事件处理程序,visual-studio-2010,c#-4.0,parameters,event-handling,arguments,Visual Studio 2010,C# 4.0,Parameters,Event Handling,Arguments,我试图编写一个具有可选EventHandler参数的方法。目前看起来是这样的: public void AddItemToMainMenu(MenuItem parentMenu, MenuItems item, String menuItemText, bool isChecked, EventHandler? eventHandler = null) 错误发生在最后一个参数上,它表示: 错误51“System.EventHandler”类型必须是不可为空的值 类型,以便将其用作泛型类型或方

我试图编写一个具有可选EventHandler参数的方法。目前看起来是这样的:

public void AddItemToMainMenu(MenuItem parentMenu, MenuItems item, String menuItemText, bool isChecked, EventHandler? eventHandler = null)
错误发生在最后一个参数上,它表示:

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

编辑:我已经删除了?现在收到一个非常类似的错误,我也对另一个参数做了一个不重要的更改。现在案文如下:

 public void AddItemToMainMenu( MenuItems item, String menuItemText, bool isChecked, EventHandler eventHandler = null, MenuItem? parentMenu = null)
错误41类型“System.EventHandler”必须是不可为null的值类型,才能将其用作泛型类型或方法“System.nullable”中的参数“T”


您不需要将
EventHandler
设为空。删除定义中的


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

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

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