我使用以下类构建了类库:
public class Class1
{
public Class1()
{
}
public void Method1()
{
//user should call this method before Method2
}
public void Method2()
{
//user should call Method1 before calling this method
}
}
如何在致电 Method1 之前阻止用户拨打 Method2 ? 感谢
答案 0 :(得分:2)
在调用第一个方法时设置一个标志:
public class Class1
{
private bool hasCalledMethod1;
public Class1()
{
}
public void Method1()
{
//user should call this method before Methode2
hasCalledMethod1 = true;
}
public void Method2()
{
if (!hasCalledMethod1)
{
throw new InvalidOperationException("Must call Method1 before calling Method2");
}
//user should call Methode1 before calling this method
}
}
答案 1 :(得分:1)
为什么不通过在Method1()
内调用Method2()
来强制执行此操作,如下所示
public void Method2()
{
Method1();
//Do rest of the work here
}
因此,只要用户在不调用Method2()
的情况下直接致电Method1()
,就会确保在处理Method1()
正文开始之前已经处理了Method2()
。