不要在每个类中创建数据集的新实例,而是传递一个实例,例如:
public class AnotherClass
{
private DataSet m_dataSet;
public AnotherClass(DataSet ds)
{
m_dataSet = ds;
}
}
创建新的AnotherClass
使用实例时:
AnotherClass ac = new AnotherClass(m_dataSet);
wherem_dataSet
又是一个引用数据集的成员变量——要么传递给构造函数中的调用类,要么(在主类的情况下)在代码中的某处创建。
只创建一次数据集,例如在主类中。
另一种方法是使用单例类来保存数据集的实例。然后可以从许多不同的对象访问单例。
非线程安全示例将是:
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
;访问它