首页 > 解决方案 > 为什么这个类在自身内部实例化?

问题描述

请帮助我理解这段代码。这就像使用对象而不是值的枚举吗?是否有解释这个过程的术语或模式?

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");
}

标签: c#

解决方案


这似乎是一个类:

  1. 允许创建具有自定义状态值的实例(不可公开访问!)
  2. 为自身的实例提供预定义的值

我忽略了私有构造函数。正如@jacob-krall 指出的那样typesafe enum(来自较旧的Java)似乎最适合。


推荐阅读