1

私はC#と特別な(もちろん!)イベントの初心者です...

私のコードでは、イベントから要素Tを取得し、それをリスト(List)に追加します。

Tは「OnPropertyChanging」として署名されているため、コード内のあらゆる場所で変更されます。したがって、リストのすべてのメンバーは同じです。では、Tの過去の値をすべてリストに保存するには、何を実装する必要がありますか?

前もって感謝します。

編集(それをよりよく説明しようとしています):

リアルタイム計算を実行するために使用するDDEを介してデータを受信するアプリケーションがあります。今までは問題ありません。以前のデータをリストに保存できなかったため、以前のデータを使用しなければならないときに問題が発生します。

最初のデータ読み取りでリストを作成し、それに値を追加します。

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

2回目の再作成後、リストの最後の値を使用して、最新の値と比較します。

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-実際には1つのインスタンスのみです

含まれるデータの各部分のプロパティを持つ独自のクラスを作成しTick、履歴リスト用にこのクラスの新しいインスタンスを設定します。それぞれの番号だけが必要な場合は、履歴を保存するTickだけで済みます。List<int>

于 2012-04-25T19:04:19.943 に答える