クラス全体でデリゲートを利用できるようにしたいと思います。これのポイントは、外部クラスのbackgroundWorkerから呼び出されたメソッドが、そのすべてのメソッド(ExternalClass.Run();呼び出しExternalClass.Method2(); ExternalClass.Method3();などを継続的に報告できるようにすることです。いくつかの進捗レポートを送信するために。継続的に代理人を通過しなければならないのは非効率的です。
デリゲートのインスタンスをグローバルに初期化し、Run()で渡されたインスタンスと等しくなるように設定してみました。各メソッドで使用できるようになりますが、nullオブジェクトを暗黙的に変換できないというエラーが表示されます。
ありがとう!
現在使用しているコード(ラップトップにある)がないため、使用しているコードを表示できませんが、ここでより適切に説明しようと思います。擬似コード:
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に渡したいです。