在调用类中的其他方法之前调用method1

时间:2014-10-20 14:30:42

标签: c# .net class oop

我使用以下类构建了类库

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 ? 感谢

2 个答案:

答案 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()