为什么这个类本身在实例化?

时间:2018-05-02 13:36:05

标签: c#

请帮我理解这段代码。这是一个包含对象而不是值的枚举?是否有术语或模式来解释这个过程?

public class State
{
    private State(String value)
    {
        Value = value; 
    }

    public String Value { get; set; }

    public static State Open => new State("Open");

    public static State Closed => new State("Closed");

    public static State YourOpen => new State("YourOpen");

    public static State YourClosed => new State("YourClosed");
}

3 个答案:

答案 0 :(得分:4)

这似乎是一个班级:

  1. 允许使用自定义状态值创建实例(不可公开访问!)
  2. 为自己提供预定义值的实例
  3. 我忽略了私人构造函数。正如@ jacob-krall指出的那样typesafe enum(来自较旧的Java)似乎最适合。

答案 1 :(得分:3)

我认为这是typesafe enum的一个例子,它定义了一个类型的有限选项列表。

答案 2 :(得分:1)

它是state patternState Pattern in C#实现,但没有创建子类,而是在类本身创建方法

在您给出的代码中,每个方法都会更改状态并返回已更改状态的实例。表格Open>>close >>your open >> your close

enter image description here

enter image description here