2017-06-02 49 views
0

我一直很难决定何时应该将静态类声明为一个类。 我知道一个静态字段是由一个类创建的所有对象之间共享的,不同于每个对象拥有的常规非静态字段。静态字段 - 如果仅从类中创建一个实例

然后,如果知道只有一个对象将从类中创建(因为我已经多次看到这种情况),那么静态字段的含义是什么? 如果“静态”的定义是“在所有实例之间共享的”,那么静态字段是否与常规非静态字段具有相同的作用,前提是只有一个从该类创建的对象?

我从老板那里得到了这个老项目来研究C#,我发现一些在类中声明为静态的字段,但是只有一个从该类创建的对象,并且我有点困惑它没有多个实例。

+0

没有什么变化。该类不知道开发人员打算只创建一个实例。如果你知道你有一个单例类,那么没有理由使用静态字段 –

回答

0

您不应该因为只有一个单一实例而决定使用static。正如你已经提到的一个实例。

问题是否应该是静态的取决于您的成员是否依赖于内部状态,那是您需要设置一些属性,您可以与此成员合并。因此,即使只有一个实例存在,此实例也会共享一组定义其状态的成员。只有当你的成员可以忽略来自单个实例的所有这些信息时,它应该被标记为静态。

但是让一些成员static做出很多事情 - 例如,嘲讽 - 很难,因为你创建了一个严重依赖你的班级持有该成员

相关问题