我有一个修改方法,在
中执行ClientModify操作 public bool Modify()
{
bool retval = false;
retval = Spa.ClientModify(col);
}
这里我想要的是ClientModify应该只在事件处理程序“ServerEvents”中完成三个事件后执行,否则它应该返回retval为false。如何在执行“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
}
}
}
我在eventhandler“ServerEvents”中添加了一个变量bool Yes = false,并且检查完成后 否则if(this_event.objectName ==“serverstate”)我把它设为yes = true,但这里我遇到的问题是我不能 能够在Modify()方法中获得是的布尔变量,我将得到ServerEvents,但无法实例化。如何 我可以这样做,还是有任何其他机制
答案 0 :(得分: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;
}
}