0

我有两个 C# 方法 RegisterTasks() 和 WaitForAll(),每当调用 RegisterTasks() 时,也必须在同一个代码块中调用 WaitForAll()。只是想知道是否有办法告诉 C# 编译器确保 WaitForAll() 总是与 RegisterTasks() 一起出现,否则会给出编译错误?谢谢~

4

4 回答 4

5

降低 and 的可见性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 回答