设置变量时出现逻辑错误

时间:2010-12-16 05:41:45

标签: c# .net-2.0

我有一个执行两个方法的else循环,

static private void HandleClientStateCB(string clientName, 
                                     SPD.SPD_clientStateType state, object pb){
     //IF()
     else {
         HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceInactive, "");
         HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceDisconnect, "");
     }
}

我的要求是什么时候客户端断开连接时我需要将版本设置为null。现有条件就像这样

static private void HandleClientEventCB(SPD.SPD_eventType type, 
                          SPD.SPD_event this_event, object passback){
    //------------------
    string agentVersion = "0.0.0.0";
    if (this_event.variableData.Length >= 6 ){
         agentVersion = this_event.variableData[5].atr_value;
    }
}

所以我做的是我宣布一个布尔变量测试private static bool test = false; 然后我在else循环中使用

static private void HandleClientStateCB(string clientName, 
                                    SPD.SPD_clientStateType state, object pb){
    //IF()
    else {
        HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceInactive, "");
        HandlePCAEvent(myDevice, SpoServer.PCA.Event.DeviceDisconnect, "");
        test = true;
    }
}

static private void HandleClientEventCB(SPD.SPD_eventType type, 
                                     SPD.SPD_event this_event, object passback){
    //-------------------------------
    string agentVersion = "0.0.0.0";
    if (this_event.variableData.Length >= 6 && test==false ){
        agentVersion = this_event.variableData[5].atr_value;
    }
}

但是这个逻辑不起作用,任何机构都可以建议任何其他逻辑,以便我的版本应该是空的断开时间

1 个答案:

答案 0 :(得分:1)

设置test = true;时,如何检查设备是否已断开连接?如果HandleClientEventCB函数中有该条件,请再次检查。否则,您需要将true/false传递给HandleClientEventCB以了解设备是否已断开连接。

另外,您不能对DeviceActiveDeviceInactiveDeviceConnectDeviceDisconnect使用不同的事件。如果是,那么您可以知道是否要求HandleClientEventCB 断开连接