【问题标题】:Auto-property default value [duplicate]自动属性默认值 [重复]
【发布时间】:2014-01-07 09:26:24
【问题描述】:

我可以在 C# 中生成具有默认值的自动属性吗?

public class MyClass
{
     MyClass()
     {
         Reason = "my reason";
     }

     public string Reason{ get; set; }
}

【问题讨论】:

  • 你试过看看是否有效?
  • 您是在问您提供的代码是否有效,或者是否有其他方法?对于自动属性 ​​- 不,这是唯一的方法。

标签: c# default automatic-properties


【解决方案1】:

是的,你可以。确实。就像你展示的那样。

【讨论】:

  • 反对票有什么用? (我原本想发布一个“是”,但不幸的是,SO 不允许我发布这么简短的答案。)
  • 没有投反对票,但它不会工作 as shown 因为构造函数不是公开的,所以 var mc = new MyClass() 甚至不会编译。
  • @Abbas:正如MSDN 中解释的那样,成员的默认可见性是private,因此构造函数确实是不公开的。它只能从类中调用。 OP 在哪里需要 var mc = new MyClass(); 才能编译?
  • 没说他需要这个,我只是提了这个。但是你的回答是对的,@DimitarDimitrov,并不是要学究气,我只是想帮忙,我也+1。 :)
  • 不,最好指出来。让我在给出 cmets/answers 之前想得更久。 ;)
【解决方案2】:

是的,但是为了能够从您的类外部创建实例,请将您的构造函数公开。

public class MyClass
{
    public MyClass()
    {
        Reason = "my reason";
    }

    public string Reason {get; set; }
}

【讨论】:

    【解决方案3】:

    您必须添加一个默认构造函数并初始化自动属性值。

    【讨论】:

    • 他就是这么做的。他只是想知道它是否会起作用。
    • 我在问这是否是正确/最好的方式
    • 是的,这是唯一的方法。!!
    • 我提出这个解决方案是因为它有效! ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    相关资源
    最近更新 更多