我正在使用Devexpress
文件上传控件。我正在使用overload
类中的以下UploadControlExtension
:
public static UploadedFile[] GetUploadedFiles(string name, UploadControlValidationSettings validationSettings, EventHandler<FileUploadCompleteEventArgs> fileUploadCompleteDelegate);
我的完整事件方法签名如下:
public static void AttachmentUploadedCompleteEvent(object sender, FileUploadCompleteEventArgs e)
我要做的是将其他参数传递给我的AttachmentUploadedCompleteEvent()
方法。所以我希望签名改为
public static void AttachmentUploadedCompleteEvent(object sender, FileUploadCompleteEventArgs e, bool isAdmin)
但是当然如果我改变上面的话就会出错:
无法从'方法组'转换为'输出字符串[]'
我对Delegates
的了解不是最好的,所以我希望有人能指出我如何实现这个目标的正确方向。
提前感谢您的帮助。
答案 0 :(得分:1)
需要提供与signature of the delegate兼容的方法。这意味着,GetUploadedFiles
的第3个参数必须是以object
和FileUploadCompleteEventArgs
作为参数的方法,并返回void。
你可以传递一个lambda来“咖喱”你的功能:
GetUploadedFiles(name, validationSettings, (s, e)=> { AttachmentUploadedCompleteEvent(s, e, isAdmin); }
lambda表达式是匿名方法,它匹配所需委托的签名,但您可以将另一个参数传递给原始方法。
答案 1 :(得分:0)
您需要更改委托声明,如
public delegate void AttachmentUploadedCompleteEventHandler(object sender,FileUploadCompleteEventArgs e,bool isAdmin)