2010-08-23 110 views
0

我有一个方法修改其做内如何检查在事件处理程序的条件

public bool Modify() 
{ 
bool retval = false; 

retval = Spa.ClientModify(col); 

} 

这里我想要的是ClientModify应该执行在事件处理程序完成了三次后才事件“ServerEvents”否则应在操作ClientModify返回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”,一旦这个检查假完成 else if(this_event.objectName ==“serverstate”)我把它作为yes = true ,,但是这里我面临的问题是我不能 能够得到是的布尔变量里面Modify()方法,我会得到ServerEvents,但不能实例化。如何 我可以这样做吗?或者是否有任何其他机制?

+0

我想我和其他人真的要回答这个问题,因为它框定为一个非常简单的问题,但你张贴ServerEvents方法毫无意义可言,也没有任何意义它有什么做修改方法。 – 2010-08-23 13:25:35

+0

这是一个重新连接机制,它应该在做任何修改之前完成 – peter 2010-08-23 13:28:19

回答

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; 
    } 
} 
+0

你能通过代码来解释吗,你的意思是设置属性 – peter 2010-08-23 13:29:51

+0

@peter:我想我可以为所有读这个的人说,当我说,我不知道你在说什么。如果你有一个说英语比你好的朋友,也许让他们问这个问题。 – 2010-08-23 13:37:41

+0

我无法做实例化public MyState MyClassState {get;组; }事件处理函数中的 static private void ServerEvents – peter 2010-08-23 13:52:54