一个只有静态方法的类应该是静态的吗?

时间:2016-04-05 11:08:13

标签: c# static

我有一个只有静态方法的类。班级本身也应该是静态的吗?这有关系吗?

2 个答案:

答案 0 :(得分:6)

  

重要吗?

使类静态可确保在用户尝试执行此操作时,无法通过生成编译器错误来实例化它。如果仅由静态成员组成的类根本不打算实例化,则没有理由不将其设置为静态。您可以选择不这样做,但是这样的类的实例不会非常有用,并且创建这些实例的用户将会非常困惑。

另一方面,如果你打算创建这个类的实例,但是你希望派生类实现自己的实例成员,那么这个类很可能是抽象的,而不是静态的(也许那些实例成员应该是通过抽象定义或界面预先说明。

答案 1 :(得分:2)

一般来说:是的。

您可以通过创建类static来阻止程序员创建某个类的对象实例。如果这是你想要的,那就去做吧。这可以通过显示(其他同事等)该类不打算实例化来防止错误。

public static class A 
{
  // Some static member
}
A a = new A(); // Compilation error