我想让一个代表可供整个班级使用。这样做的目的是允许来自外部类的 backgroundWorker 的调用方法通过它的所有方法(ExternalClass.Run();调用 ExternalClass.Method2();ExternalClass.Method3();等等,它们都需要发送几个进度报告。必须不断地通过委托似乎效率低下。
我尝试全局初始化委托的实例并将其设置为等于 Run() 中传递的实例;然后每种方法都可以使用,但我收到一个错误,即无法隐式转换空对象。
谢谢!
我无法显示我正在使用的代码,因为我目前没有它(它在我的笔记本电脑上),但我现在会尝试更好地解释。伪代码:
class form1 : form {
backgroundWorker_doWork()
{
Class2.Run();
}
backgroundWorker_OnProgressChange()
{
// do this
}
}
class class2{
Run(){
OtherMethod();ThirdMethod();
}
OtherMethod(){ //need to call backgroundWorker.ReportProcess(int, string)}
ThirdMethod(){ //need to call backgroundWorker.ReportProcess(int, string)}
}
我真的不想每次都通过它是重点,我想以某种方式将它传递给class2