0

2つのC#メソッドRegisterTasks()とWaitForAll()があり、RegisterTasks()が呼び出されるたびに、同じコードブロックでWaitForAll()も呼び出される必要があります。WaitForAll()が常にRegisterTasks()と一緒に表示されることを確認し、そうでない場合はコンパイルエラーを発生させるように、C#コンパイラに指示する方法があるかどうか疑問に思っていますか?ありがとう〜

4

4 に答える 4

5

RegisterTasks()との可視性を減らし、WaitForAll()両方を呼び出すメソッドを公開します。

于 2013-03-22T03:59:32.607 に答える
2

他の誰もが言ったように、簡単な答えはノーです。

呼び出し元がそれらの間で他のコードを実行したい場合があるため、これらのメソッドは別々であると思います。デリゲートをパラメーターとして取り、必要に応じてそのデリゲートを呼び出す単一の結合メソッドを作成することを検討することをお勧めします。

于 2013-03-22T04:01:51.110 に答える
0

いいえ。契約を適切に文書化し、メソッドを正しく使用するためにエンドユーザーを信頼する必要があります。

于 2013-03-22T03:58:37.217 に答える
0

いいえ、いくつかのデザインを行うことができます。例:

public void RegisterTasks(){
  // do something
  WaitForAll();
}

または

public void RegisterTasks(){
  // do something
  privateWaitForAll();
}
public void WaitForAll(){
  // do something
  privateWaitForAll();
}
private void privateWaitForAll(){
  // do something
}
于 2013-03-22T04:01:56.413 に答える