これまで私はこの質問をしていましたが、回答があると思っていましたが、残念ながら答えは必要ではありませんので、取得するため。ここでC#クラスインスタンス間でデータを保持する方法
は私の前の質問へのリンクです:クラスAはリストが含まれている場合、どのように私はその中のデータを保存することができます
与えられたクラス
:ここC# how can I preserve data between class instances?
は、問題の説明ですオブジェクトBとC(クラスAのインスタンス)がリスト内のデータにアクセスできるようにします(たとえBとCの両方がクラスAの独自のインスタンスを新しくしたとしても)。
**これは、オブジェクトデータソースを使用して実装しようとしているレポートソリューションのためのものです。
私は次のコードは、上記のコードの問題は、私はインスタンスと静的リストを更新するたびに、それは前の呼び出しからのデータを上書きするということです
[DataObject]
public class Product
{
public string Name {get; set;}
public string Category {get; set;}
public int ID {get; set;}
// this method let's calling code add an instance of this class to the
// to the ProductList
public void AddItemsToList()
{
ProductList.Add(this);
}
// static list allows me to preserve the list data
public static List<Product> ProductList =
new List<Product>();
// This method is used to return an IEnumberable object to my reporting
// solution (Telerik Reports)
[DataObjectMethod(DataObjectMethodType.Select)]
public IEnumerable<Product> GenerateReport()
{
return ProductList;
}
}
私の問題への解決策だと思いましたList.Add()に追加します。したがって、この商品クラスのインスタンスを5つ追加すると(それぞれ異なるプロパティ値が設定されています)、私のリストには、すべてのプロパティー値が最後に設定された5つのアイテムがすべて含まれます。
必要なもの:自分のデータを保持するだけでなく、リストに最後のインスタンスを5コピーだけ追加するのではなく、各インスタンスのコピーがリストに含まれていることを確認する必要があります。
必要に応じて詳細を提供し、必要に応じてテストコードを提供することができます。どんなアイデアであれ非常に役に立ちます。
実際に* 5つの異なるアイテムを追加した場合、5つの異なるアイテムがあります。リストに同じアイテムのコピーが5つある場合は、同じアイテムのコピーを5つ追加したためです。それはすべてが本当に悪い考えのように思える。このような静的リストを持つべきではありません。どのようなコードでも、これらのアイテムのリストが必要な場合は、そのリストを持ち、必要に応じてアイテムを追加する必要があります。 – Servy
右...それは理にかなっています。ちょうど私がAddItemToListを複数回呼び出すと、クラスの新しいインスタンスをリストに追加するという意味ではありません(私はちょうど更新されたプロパティで同じインスタンスを追加しています)。私は新しいインスタンスで私の呼び出しコードを送信し、それが動作するかどうかを確認します。 –
あなたの質問にクラス 'A'、' B'、 'C'が含まれている場合、なぜあなたのコード例はそれを示していませんか?率直に言えば、その質問は全く明らかではありません。私はここでシングルトンが助けになるとは思っていません。しかし、あなたが試したことと、それがうまくいかなかった理由を、よりよく説明する必要があります。 'B'と' C'クラスがそれぞれ 'A'のインスタンスを持っている理由を説明してください。何らかの理由で、' A'の_other_インスタンスが所有するリストオブジェクトにアクセスする必要があります。より具体的で質問をより明確かつ分かりやすい方法で提示できるようになるまで、皆さんが得ようとしているのは行き止まりの答えです。 –