为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
不负相思意 2021-05-14 18:19:08
请帮助我理解此代码。这就像对象而不是值的枚举吗?是否有解释此过程的术语或模式?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 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

它是C#实现中的状态模式状态模式,但未创建子类,而是在类本身中创建了方法

在您提供的代码中,每个方法都会更改状态并返回更改后状态的实例。形式Open>>close >>your open >> your close

//img1.sycdn.imooc.com//60aa29690001172e03930169.jpg

或者

//img1.sycdn.imooc.com//60aa29760001419205470395.jpg

查看完整回答
反对 回复 2021-05-23
?
哔哔one

TA贡献1854条经验 获得超8个赞

看来这是一类:

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

  2. 为自己的实例提供预定义的值

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


查看完整回答
反对 回复 2021-05-23
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

我认为这是一个类型安全枚举的示例,该枚举类型定义了一个有限的选项列表。


查看完整回答
反对 回复 2021-05-23
  • 3 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信