将旧数据存储在列表中

时间:2014-10-21 08:52:43

标签: c# .net

我有一种方法可以获取一些数据(来自transmussion)并且该方法被多次调用。我想在这种方法中使用最后一次传输的数据。但

private List<byte> _dataOfLastMsg = new List<byte>();

internal List<msg> GetData (Imsgod msgod, List<Byte> data)
{
    if (data == null || data.Count == 0)
            return transmission;

    // Call x
    // USING _dataOfLastMsg

    ...
    ...

    if (data.Count != 0)
        _dataOfLastMsg = data;

}

示例:

  • 消息1:0 0 70 0 0
  • 消息2:0 0 0 0 0
  • 消息3:20 0 0 0 20

    • GetData的第1个调用:_dataOfLastMsg = 0 0 70 0 0
    • GetData的第2个调用:_dataOfLastMsg = 0 0 70 0 0
    • GetData的第3个调用:_dataOfLastMsg = 20 0 0 0 20

在调用3时,_dataOfLastMsg应为0 0 70 0 0,因为_dataOfLastMsg的调用位于此行之前:_dataOfLastMsg = data;

什么错了?抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

大约有90%的代码需要给你一个合理的答案,但是这里需要考虑一下。

你在哪里打电话给这堂课? 是保留实例还是每次都重新创建? 什么是实际输出数据以及如何调用它? 什么是传输,为什么在数据为空时返回它? //呼叫x是什么意思? 您正在为该计划提供哪些数据以及如何处理?

从我可以模糊地告诉你,在你的第三次调用中,你的传输被返回而不是_dataOfLastMsg,但唯一的方法是在方法开始时打一个断点并点击debug来查看所采用的逻辑路径你的程序以及变量如何变化。