2010-08-23 24 views
0

J'ai une méthode Modifier qui font une opération ClientModify à l'intérieurComment vérifier les conditions dans eventhandler

public bool Modify() 
{ 
bool retval = false; 

retval = Spa.ClientModify(col); 

} 

Voici ce que je voulais est le ClientModify doit effectuer seulement après trois événements terminés dans le eventhandler « ServerEvents » sinon il devrait retour retval .Comment comme faux puis-je faire des contrôles avant de faire l'opération « 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 
      } 
     } 

} 

Certains comment j'ajouté une variable bool Oui = false dans les EVENTHANDLER « ServerEvents » et une fois cette vérification terminé else if (this_event.objectName == "serverstate") je l'ai fait comme yes = true ,, Mais ici le problème que je suis confronté est je ne peux pas capable d'obtenir la variable booléenne yes à l'intérieur de la méthode Modify(), je vais obtenir ServerEvents, puis-je faire cela ou est-il un autre mécanisme pour cela

+0

Je me pense et d'autres veulent vraiment répondre à cette question, car il est formulé comme une question très simple, mais cette méthode de ServerEvents vous avez publié n'a pas de sens du tout, ni de sens ce qu'il doit faire avec la méthode modify. –

+0

Cest un mécanisme de reconnexion en cours, il devrait être terminé avant de faire toute modification – peter

Répondre

2

Si vous avez besoin de vérifier si 3 méthodes ont été complétées, et ils ne sont pas en train de laisser une traînée de propriétés modifiées qui permettent vous devez déjà vérifier, ce que vous devez faire est de les faire modifier certaines propriétés lorsque chacun d'eux s'exécute, puis vous vérifiez chacune de ces propriétés dans votre méthode modifier pour voir si ces événements ont été exécutés.

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

Pouvez-vous expliquer à travers le code ,, vous voulez obtenir la propriété set – peter

+0

@peter: Je pense que je peux parler pour tout le monde en lisant ce que je dis, je Je n'ai aucune idée de ce dont vous parlez. Si vous avez un ami qui parle mieux l'anglais que vous, demandez-leur peut-être poser la question. –

+0

je ne suis pas capable de faire l'instantiation public MyState MyClassState {get; ensemble; } dans le gestionnaire d'événements static private void ServerEvents – peter