C# 将附加参数传递给方法

C# 将附加参数传递给方法,c#,asp.net-mvc,delegates,devexpress,C#,Asp.net Mvc,Delegates,Devexpress,我正在使用Devexpress文件上载控件。我在UploadControlExtension类中使用以下重载: public static UploadedFile[] GetUploadedFiles(string name, UploadControlValidationSettings validationSettings, EventHandler<FileUploadCompleteEventArgs> fileUploadCompleteDelegate); 我试图做的

我正在使用
Devexpress
文件上载控件。我在
UploadControlExtension
类中使用以下
重载

public static UploadedFile[] GetUploadedFiles(string name, UploadControlValidationSettings validationSettings, EventHandler<FileUploadCompleteEventArgs> fileUploadCompleteDelegate);
我试图做的是向我的
AttachmentUploadedCompleteEvent()
方法传递额外的参数。所以我想把签名改成

public static void AttachmentUploadedCompleteEvent(object sender, FileUploadCompleteEventArgs e, bool isAdmin)
当然,如果我改为上面的话,我会得到一个错误:

无法从“方法组”转换为“输出字符串[]”

我在
代理方面的知识不是最好的,所以我希望有人能为我指明正确的方向来实现这一点


提前感谢你的帮助

需要提供一种与标准兼容的方法。这意味着,
GetUploadedFiles
的第三个参数必须是一个方法,该方法将
对象
fileuploadecompleteeventargs
作为参数,并返回void

您可以将lambda传递给函数“curry”:

GetUploadedFiles(name, validationSettings, (s, e)=> { AttachmentUploadedCompleteEvent(s, e, isAdmin); }

lambda表达式是一个匿名方法,它匹配所需委托的签名,但是您可以将另一个参数传递给原始方法

您需要更改委托声明,如


public delegate void AttachmentUploadedCompleteetEventHandler(对象发送者、文件上载CompleteetEventTargets e、布尔isAdmin)

谢谢!这正是我所需要的。你帮我节省了很多时间!很高兴你这么说。
GetUploadedFiles(name, validationSettings, (s, e)=> { AttachmentUploadedCompleteEvent(s, e, isAdmin); }