すべてのクラスでデータ セットの新しいインスタンスを作成するのではなく、次のように 1 つのインスタンスを渡します。
public class AnotherClass
{
private DataSet m_dataSet;
public AnotherClass(DataSet ds)
{
m_dataSet = ds;
}
}
使用の新しいインスタンスを作成する場合AnotherClass
:
AnotherClass ac = new AnotherClass(m_dataSet);
ここm_dataSet
でも、データセットを参照するメンバー変数です。コンストラクターで呼び出し元のクラスに渡されるか、(メインクラスの場合) コードのどこかに作成されます。
メイン クラスなどで、データ セットを 1 回だけ作成します。
もう 1 つの方法は、データ セットのインスタンスを保持するシングルトン クラスを使用することです。シングルトンは、多くの異なるオブジェクトからアクセスできます。
スレッドセーフでないサンプルは次のようになります。
public class DataHolder
{
private DataSet m_dataSet;
private static DataHolder m_instance;
private DataHolder()
{
m_dataSet = ... // Fill/Create it here
}
public static DataHolder Instance
{
get
{
if (m_instance = null)
m_instance = new DataHolder();
return m_instance;
}
}
public DataSet Data
{
get { return m_dataSet; }
}
}
次に、DataHolder.Instance.Data
;を使用してアクセスします。