我正在使用以下方法签名
的框架中工作 public ImageLinkButton AddToolBarButton(string commandName, string text, string toolTip, string imageUrl, string confirmMessage, bool defineID = false)
我发现我需要使用额外的bool参数
来重载它 public ImageLinkButton AddToolBarButton(string commandName, string text, string toolTip, string imageUrl, string confirmMessage, bool causesValidation, bool defineID = false)
但是,在使用中,我无法看到如何确保实际调用哪个方法,因为调用
MyWhatsit.AddToolBarButton("cmdname", "text", "toolTip", "URL", "confirm", true);
可以调用(假设我的头直立)。
我很确定我做错了什么,但我看不清楚!
由于
爱德华
答案 0 :(得分:2)
您可以使用named parameters。因此,当您调用方法时,请执行以下操作:
MyWhatsit.AddToolBarButton(commandName: "cmdname", text: "text", ...
答案 1 :(得分:1)
如果两个候选人被判断为同样好,则优先选择没有可选参数的候选人 调用中省略了参数。这是一般的结果 对于拥有较少的候选人,重载决议的偏好 参数。
所以,如果你打电话给MyWhatsit.AddToolBarButton("cmdname", "text", "toolTip", "URL", "confirm", true);
这将调用问题
中给出的First重载方法答案 2 :(得分:0)
最快的是交换参数的顺序,这样你就不必将bool作为两者的最后一个参数:
编辑:
public ImageLinkButton AddToolBarButton(string commandName,
string text,
string toolTip,
string imageUrl,
string confirmMessage,
bool defineID = false)
public ImageLinkButton AddToolBarButton(string commandName,
string text,
string toolTip,
string imageUrl,
bool causesValidation,//swap this
string confirmMessage, //and this
bool defineID = false)