ReportProgress
方法包含2个参数。一个是int,一个是用户状态。我将一些字符串参数传递给方法进行一些处理,并且不需要int。
有没有办法省略传递第一个int而没有冗余来调用ReportProgress([randomInt], "MyString")
的报告进度方法?仅用于代码清理目的。
答案 0 :(得分:4)
您可以为BackgroundWorker创建扩展方法,如下所示:
public static class BackgroundWorkerExt
{
public static void ReportProgress(this BackgroundWorker self, object state)
{
const int DUMMY_PROGRESS = 0;
self.ReportProgress(DUMMY_PROGRESS, state);
}
}
然后您将能够执行以下操作(只要参数不是int,否则将调用普通的ReportProgress(int)
):
_backgroundWorker.ReportProgress("Test");
答案 1 :(得分:2)
ReportProgress
方法需要使用int,因为它会引发ProgressChanged
事件,该事件具有参数ProgressChangedEventArgs
,而该参数又具有属性ProgressPercentage
。
简单地将0传递给方法,或者像RobSiklos建议的那样,编写一个将ReportProgress
调用为0的扩展方法。
答案 2 :(得分:1)
您可以创建一个隐藏第一个参数的扩展方法(只使用0
调用实际方法)