首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重复调用方法

重复调用方法
EN

Stack Overflow用户
提问于 2016-08-16 14:31:59
回答 2查看 47关注 0票数 1

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

我选择了静态,所以每个类都可以调用数据集,而无需每次初始化它。

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

另外,我有几种方法,该查询可以将Dataset查询与其他代码逻辑分离开来。

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

我的问题是:在没有在每个函数中显式实现的情况下,是否有可能执行这个检查,而不显式地实现这个类的任何函数?

或者,在我的数据库建模中是否有一个基本的错误?

提前谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-16 14:37:19

我建议使用Lazy<T>

代码语言:javascript
复制
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;
  }
}
票数 3
EN

Stack Overflow用户

发布于 2016-08-16 14:41:26

这只是静态代码的基本问题。你永远不知道你的代码的另一部分落在哪一个状态.好吧,不是,从来没有,但是你知道这个主意。

当您检查初始化失败时,您的代码会做什么?您能立即初始化它吗?还是停止进一步的执行?

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38977671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档