我可以在c#类中设置属性以始终具有特定的默认值吗?

时间:2016-03-25 20:56:32

标签: c# properties

我有一个带有属性的C#类,我最终在这个类中使用了另一个类中List类型的集合。

我想要做的只是始终将Type属性设置为有价值" 3"

应该/可以使用getter / setter完成,还是应该使用System.Component.DefaultValue ....属性

public class ReportDefinition 
{

    public int Id { get; set; }
    public string ReportGroupNameDef { get; set; }
    public int SortOrder { get; set; }
    public int ReportGroupId { get; set; }

    [System.ComponentModel.DefaultValue(3)]
    public int Type { get; set; }

}

我认为我不希望以这种方式使用[System.ComponentModel.DefaultValue(3)]

2 个答案:

答案 0 :(得分:0)

您可以使用只读属性,并返回私有字段的值,或者只是在NSJSONSerialization中返回您想要的值。

get

答案 1 :(得分:0)

我不希望得到或偷走现有的选定答案,但我确实希望帮助澄清我正在阅读的一些评论。

  1. 是的确,最好的清洁方式是自动属性public int Type { get; } = 3; - 警告是C#6

  2. 没有自动属性的另一个C#6将是表达主体

    private int m_type = 3;
    public int Type => m_type;   
    
  3. 但是如果你想要使用Linqpad 4,那么选择的答案是"罚款"

    private int m_type = 3;
    public int Type 
    { 
      get 
      {
          return m_type; 
      }
    }