0

我有一个方法 Modify 里面做一个操作 ClientModify

 public bool Modify()
{
bool retval = false;

retval = Spa.ClientModify(col);

}

在这里我想要的是 ClientModify 应该只在事件处理程序“ServerEvents”中完成三个事件之后执行,否则它应该返回 retval 为假。在执行“Spa.ClientModify”操作之前我该如何进行检查

static private void ServerEvents(eventType type, event this_event, object passback)
{

         if (this_event.type == eventType.SPD_spurtEvent)
        { 

           if (this_event.objectName == "ready")
            {                  
           // some operation 
            }
           else if (this_event.objectName == "info")
            {
           // some operation
            }

           else if (this_event.objectName == "serverstate")
            {
           // some operation
            }
        }

}

我如何在事件处理程序“ServerEvents”中添加变量 bool Yes=false 并且一旦完成此检查,否则如果(this_event.objectName ==“serverstate”)我将其设置为 yes=true,但是我面临的问题是我无法在 Modify() 方法中获得是布尔变量,我将获得 ServerEvents,但无法实例化。我该怎么做,或者是否有任何其他机制

4

1 回答 1

2

如果您需要检查 3 个方法是否已完成,并且它们当前没有留下允许您检查的已更改属性的踪迹,您需要做的是让它们在每个方法执行时修改一些属性,然后您检查修改方法中的每个属性以查看这些事件是否已执行。

public class MyState
{
    public bool Method1HasExecuted { get; set; }
    public bool Method2HasExecuted { get; set; }
    public bool Method3HasExecuted { get; set; }
}

public class MyClass
{
    public MyState MyClassState { get; set; }

    public void Method1() { MyClassState.Method1HasExecuted = true; }
    public void Method2() { MyClassState.Method2HasExecuted = true; }
    public void Method3() { MyClassState.Method3HasExecuted = true; }

    public bool Modify()
    {
        return MyClassState.Method1HasExecuted && MyClassState.Method2HasExecuted && MyClassState.Method3HasExecuted ? Spa.ClientModify() : false;
    }
}
于 2010-08-23T13:27:29.550 回答