为什么在自己内部实例化此类?

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


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

}


不负相思意
浏览 106回答 3
3回答

临摹微笑

它是C#实现中的状态模式或状态模式,但未创建子类,而是在类本身中创建了方法在您提供的代码中,每个方法都会更改状态并返回更改后状态的实例。形式Open>>close >>your open >> your close或者

哔哔one

看来这是一类:允许创建具有自定义状态值的实例(不可公开访问!)为自己的实例提供预定义的值我忽略了私有构造函数。正如@ jacob-krall指出的typesafe enum(来自较旧的Java)似乎最适合。

神不在的星期二

我认为这是一个类型安全枚举的示例,该枚举为类型定义了一个有限的选项列表。
打开App,查看更多内容
随时随地看视频慕课网APP