好处

2010-10-27 41 views
2

可能重复:
What is the use of a static class好处

什么是声明静态类的好处是什么?

​​

除了“它不能被实例化”吗?
为什么你还想要一个静态类,为什么类应该是静态的?
是否“任何类应该被声明为静态的,除非它被实例化”是一个很好的经验法则?

回答

5

如果一个类则static修饰符:

  • 它使你的意图明显:这不只是碰巧具有所有静态成员的一类 - 这是一类将只有静态成员
  • 您阻止实例没有需要一个私人的构造函数只是为了抑制默认公众一个
  • 你不允许声明该类型的变量
  • 您不允许使用该类型的类型参数(IIRC,反正)
  • 你可以声明在类型扩展方法,如果它是一个顶级型

第一点是最重要的尽管如此,IMO。您正在向编译器和其他开发人员传达意图。

2

您需要一个静态类来创建扩展方法。

4

静态类可用作实用函数和常量的容器。如果类不代表一个对象并且仅用于此目的,那么将其声明为静态是有意义的。

0

实用程序类,它只声明静态方法(如System.IO.File)不被实例化,所以它通常是静态的。

你说得对,我觉得它很好用。辛格尔顿是不同的,因为它意味着私下立竿见影。

2

静态类和类成员 用于创建 可以不创建该类的一个实例 访问的数据和功能。静态类 成员可用于分隔数据 以及与任何对象标识无关的行为:数据和 函数不会更改,而不管 对象发生了什么变化。当没有 数据或 依赖于对象标识的类中的行为时,可以使用静态 类。

直接从MSDN取得。它比我能解释得更好。关键的事实是,这个对象在整个生命中一直存在。

扩展方法也必须用静态类编写。我倾向于使用这些字符串扩展或收集扩展。