C# 为什么这个类在其内部被实例化?
请帮我理解这个代码。这是否类似于使用对象而不是值的枚举?是否有术语或模式可以解释这个过程C# 为什么这个类在其内部被实例化?,c#,C#,请帮我理解这个代码。这是否类似于使用对象而不是值的枚举?是否有术语或模式可以解释这个过程 public class State { private State(String value) { Value = value; } public String Value { get; set; } public static State Open => new State("Open"); public static Sta
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");
}
这似乎是一门课:
类型安全枚举(来自较旧的Java)似乎最适合。它是或实现,但不是创建子类,而是在类本身中创建方法
在您给出的代码中,每个方法都会更改状态并返回更改状态的实例。表单打开>>关闭>>您的打开>>您的关闭
或
我认为这是a的一个例子,它为一个类型定义了一个有限的选项列表。让我想起了System.Drawing.Color.Black
真正的问题是“为什么Value
不可变?”这对我来说似乎是完全合理的代码。这不是一个单例,但这种方法在单例模式中使用。它的状态模式…很明显,不允许您创建自己的此类实例(因此是私有构造函数),而是从定义的实例中进行选择,非常类似于枚举,具有复杂类型,因为枚举基本上是int。