1

我是 C# 的新手,特别是(当然!)事件......

在我的代码中,我们从一个事件中获取一个元素 T,并希望将它添加到一个列表(List)中。

由于 T 被签名为“OnPropertyChanging”,它在我的代码中随处变化,因此 List 上的所有成员都是相同的。那么我应该如何实现将 T 的所有过去值保存在 List 中?

提前致谢。

编辑(试图更好地解释它):

我有一个通过 DDE 接收数据的应用程序,我用它来执行实时计算。到现在为止,没问题。当我必须使用以前的数据时,我的问题就开始了,因为我无法将它们保存在列表中。

我在第一次读取数据时创建了一个列表并将值添加到其中:

ticks = new List<Tick> { tick };   // where tick comes via DDE

在第二次 reding 之后,我想使用列表的最后一个值并将其与最新的值进行比较:

Tick prevTick = ticks.Last();
Tick currTick = tick;              // this tick is different from the former

但是我验证 prevTick 等于 currTick。显然,“PropertyChange”会在程序的所有实例中更改刻度,在我有机会将其传递给 prevTick 之前修改刻度的内容。

4

1 回答 1

0

假设Tick是一个类,prevTick并且currTick很可能是同一个实例,并且提供该Tick实例的底层代码只是更新此实例存储的值。这将解释您认为会PropertyChange更改所有刻度实例的想法 - 它实际上只是一个实例

我将为包含的每条数据创建自己的类Tick,并为您的历史列表填充此类的新实例。如果您只需要每个 中的一个数字Tick,那么您可以只需要一个List<int>来存储您的历史记录。

于 2012-04-25T19:04:19.943 回答