静态类存储为属性

时间:2014-08-18 13:23:30

标签: c# static-class

我有一个名为 State 的静态抽象类,它定义了抽象方法 start() update(),然后我有多个类实现状态

现在我要创建一个类,我们称之为 StateMachine ,它有一个名为 currentState 的属性。我希望能够将此属性设置为指向实现状态的静态类,以便我可以运行 currentState.update()之类的内容。

现在我的问题出现了:

该物业的类型应该是什么?我说State,但我觉得还有更多的东西。另外,我将如何设置房产?是

currentState = ClassThatImplementsState;

有效的事情吗?

编辑:好的,所以我刚刚知道你不能从C#中的静态类继承。我想知道一种类似于此的方法,这种方式可以让我既可以实现多态性,又不需要实例化状态对象。有这样的事吗?

1 个答案:

答案 0 :(得分:2)

如果状态静态类,则您不能拥有多个实现"的类,即从中派生。另一方面,当它是抽象类时,您可以从中派生出来。但它不可能都是。

编辑:我认为你真正想要的是一个 Singleton 而不是一个抽象或静态的类。有关如何在C#中实现Singleton模式的提示,请参阅http://msdn.microsoft.com/en-us/library/ff650316.aspx

编辑2:如果您的应用程序是多线程的,请务必使用Singleton模式的线程安全变体。