C# – 静态类,私有构造函数,抽象类 – 都阻止实例创建 – 使用哪一个?

我对Static类,Private构造函数和抽象类的使用感到困惑

防止实例创建.(对备选方案感到困惑).

什么是最适合每种情况的方案?

最佳答案
这取决于您的需求.

>静态类可以被认为是“一堆方法” – 你会使用它,如果你只需要对一些方法进行分组,样本用法:MathHelpers,使用Sin,Cos,ConvertXToY(或主机扩展方法)等方法.
>私有构造函数 – 当您希望能够控制对象的创建方式时,您将使用此构造函数,例如,如果要确保这些对象只能由静态方法创建.一个例子:


class Robot
{
 public string Name { get; }
 private Robot() 
 { 
   // some code
 }

 public static Robot CreateAndInitRobot(string name)
 {
   Robot r = new Robot();
   r.Name = name;
   return r;
 }
}

>抽象类 – 当你定义一些抽象对象时,你应该使用那些不应该初始化的类,因为它是不完整的/抽象的,你想进一步专门化它(通过继承它).

转载注明原文:C# – 静态类,私有构造函数,抽象类 – 都阻止实例创建 – 使用哪一个? - 代码日志