自动属性默认值 [重复]

Posted

技术标签:

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

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

public class MyClass

     MyClass()
     
         Reason = "my reason";
     

     public string Reason get; set; 

【问题讨论】:

你试过看看是否有效? 您是在问您提供的代码是否有效,或者是否有其他方法?对于自动属性 ​​- 不,这是唯一的方法。 【参考方案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】:

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

【讨论】:

他就是这么做的。他只是想知道它是否会起作用。 我在问这是否是正确/最好的方式 是的,这是唯一的方法。!! 我提出这个解决方案是因为它有效! ;)

以上是关于自动属性默认值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

具有默认值的自动属性[重复]

如何在 Laravel 模型上设置属性的默认值 [重复]

为 C# 中可变的属性设置默认值 [重复]

如何使用java注释设置类属性的默认值[重复]

为啥可选常量不会自动具有默认值 nil [重复]

如何将自动增量值设置为我喜欢的默认值 [重复]