重复调用方法

时间:2016-08-16 14:32:00

标签: c# methods dataset

我有一个静态类,用于提供与数据集的连接。

我选择了static,因此每个类都可以调用数据集,而不是每次都初始化它。

所以这个类包含一个方法public static void Init() {...},我用表适配器填充数据集。

另外,我有几种方法可以查询我将数据集查询与其他代码逻辑分开。

在每种方法中,我都必须检查数据集是否已经初始化。

这是我的问题:是否有可能进行此检查,无论调用此类的任何函数,都没有在每个函数中明确实现它?

或者我在建模这个DB的东西时有一个基本错误吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

我建议使用Lazy<T>

private static Lazy<DataSet> CoreMyDataSet = new Lazy<DataSet>(() => {
  Init();

  // ... Other code if required      

  // return dataset created
  return s_MyDataSet;
});

public static DataSet MyDataSet {
  get {
    return CoreMyDataSet.Value;
  }
}

答案 1 :(得分:1)

这只是静态代码的基本问题。你永远都不知道你的代码的另一部分留在了哪个状态......好吧不是从不但是你明白了。

检查初始化失败时,代码会执行什么操作?您可以立即初始化它还是停止进一步执行?

一种方法是检查静态类方法中的初始化,并执行调用失败时调用者所做的任何操作。但这在很大程度上取决于您的选择。

相关问题