静态类的好处

时间:2010-10-27 14:33:14

标签: c# static

  

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

声明静态类有什么好处?

public static class MyStaticClass
{
}

除了“它无法实例化”之外还有其他吗? 为什么你还想要一个静态类,为什么一个类应该是静态的呢? “任何类都应该被声明为静态,除非它被实例化”是一个很好的经验法则吗?

5 个答案:

答案 0 :(得分:6)

静态类可用作实用程序函数和常量的容器。如果该类不表示对象并且仅用于此目的,则将其声明为静态是有意义的。

答案 1 :(得分:6)

如果一个类有静态修饰符,那么:

  • 它使你的意图明确:这不仅仅是一个碰巧拥有所有静态成员的类 - 它是只会拥有静态成员的类
  • 您可以阻止实例化,而只需要私有构造函数来禁止默认的公共
  • 您不能声明该类型的变量
  • 您不得将该类型用作类型参数(无论如何,IIRC)
  • 您可以在类型中声明扩展方法(如果它是顶级类型

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

答案 2 :(得分:3)

  

静态类和类成员   用于创建数据和功能   无需创建即可访问   班级的实例。静态类   成员可用于分隔数据   和独立的行为   任何对象标识:数据和   无论如何,功能都不会改变   对象会发生什么。静态的   没有时可以使用类   类中的数据或行为   取决于对象的身份。

直接从MSDN获取。它解释得比我好得多。这里的关键事实是物体在整个生命中都存在。

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

答案 3 :(得分:2)

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

答案 4 :(得分:0)

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

你是对的,我觉得它很好用。单身人士是不同的,因为它意味着私下实行。