我有一个关于编码练习的问题。我想创建一个无法初始化的类。我相信我有 3 个选择:
- 抽象修饰符
- 静态修饰符
- 私有构造函数
我不想仅仅因为必须将我所有的属性和方法命名为“静态”而创建一个静态类——它看起来很乱(而且我不能使用“this”关键字)。
根据 MSDN:
在类声明中使用 abstract 修饰符来指示一个类仅作为其他类的基类。
编辑没有任何东西会从这个类继承。
但是,这将是一个解决方案(但在这种情况下使用它对我来说似乎是错误的)。
或者,我可以创建一个私有构造函数,这样类就不能被初始化。
如果有帮助,原因是:该类负责启动工作流程。它不需要初始化,因为没有返回任何内容 - 它只需要“启动”。
演示代码
class Program
{
static void Main(string[] args)
{
WorkFlow wf = new WorkFlow(); // this will error which is fine!
ComplexObject co = new ComplexObject();
WorkFlow.Begin(co);
Console.ReadKey();
}
}
public class WorkFlow
{
private WorkFlow()
{
//private to prevent initialization but this feels wrong!
}
public static void Begin(ComplexObject co)
{
//code to begin the workflow
}
}