如何强制2 C#方法总是在编译时出现?

时间:2013-03-22 03:57:41

标签: c# .net compiler-construction

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

4 个答案:

答案 0 :(得分:5)

降低RegisterTasks()WaitForAll()的曝光度,并公开一种调用它们的方法。

答案 1 :(得分:2)

正如其他人所说,简短的答案是否定的。

我认为这些方法是分开的,因为调用者可能希望在它们之间执行其他代码。您可能希望考虑创建一个组合方法,该方法将委托作为参数,然后在需要时调用该委托。

答案 2 :(得分:0)

没有。您需要正确记录合同并信任最终用户正确使用这些方法。

答案 3 :(得分:0)

不,但你可以做一些设计。例如:

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

或者

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