我是C#的新手,特别是(当然!)活动......
在我的代码中,我们从事件中获取元素T,并希望将其添加到列表(List)。
由于T被签名为“OnPropertyChanging”,它在我的代码中的任何地方都会发生变化,因此List上的所有成员都是相同的。那么我应该实现什么来保存列表中T的所有过去值?
提前致谢。
编辑(试图更好地解释):
我有一个通过DDE接收数据的应用程序,我用它来执行实时计算。到现在为止,没问题。当我必须使用以前的数据时,我的问题就开始了,因为我无法将它们保存在列表中。
我在第一次数据读取中创建一个列表并将值添加到其中:
ticks = new List<Tick> { tick }; // where tick comes via DDE
第二次重新发布后,我想使用列表的最后一个值并将其与最新值进行比较:
Tick prevTick = ticks.Last();
Tick currTick = tick; // this tick is different from the former
但是我确认prevTick等于currTick。显然,“PropertyChange”会改变程序的所有实例,在我有机会将其传递给prevTick之前修改tick的内容。
答案 0 :(得分:0)
假设Tick
是一个类,prevTick
和currTick
很可能是同一个实例,而提供Tick
实例的底层代码只是更新存储的值这个例子。这可以解释您的想法PropertyChange
更改所有刻度实例 - 实际上只有一个实例
我将创建自己的类,其中包含Tick
包含的每个数据的属性,并为您的历史列表填充此类的新实例。如果您只需要每个Tick
中的一个数字,那么您可以使用List<int>
来存储您的历史记录。