设置C#中可变的属性的默认值


Setting a default value for property that is mutable in C#

本问题已经有最佳答案,请猛点这里访问。

我有财产

1
public int active { get; set; }

我的数据库中的默认值为1。如果没有另外指定,我希望此属性默认为1

1
2
3
4
5
6
public partial class test
{
    public int Id { get; set; }
    public string test1 { get; set; }
    public int active { get; set; }
}

我在C 6里看到了,你能做到的。

1
public int active { get; set; } = 1

但是我没有使用C 6:。谢谢你的建议。(对C/OOP来说非常非常新)


只需在构造函数中设置:

1
2
3
4
5
6
7
8
9
10
11
public partial class Test
{
    public int Id { get; set; }
    public string Test1 { get; set; }
    public int Active { get; set; }

    public Test()
    {
        Active = 1;
    }
}

我认为这比为了默认而避免自动实现的属性简单…


在构造函数中初始化它:

1
2
3
4
5
6
7
8
9
public partial class Test
{
    public int Active { get; set; }

    public Test()
    {
        Active = 1;
    }
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// option 1:  private member
    public partial class test
    {
        private int _active = 1;
        public int Id { get; set; }
        public string test1 { get; set; }
        public int active
        {
            get {return _active; }
            set {_active = value; }
        }
    }

// option 2:  initialize in constructor

    public partial class test
    {
        public test()
        {
            active = 1;
        }
        public int Id { get; set; }
        public string test1 { get; set; }
        public int active { get; set; }
    }


在pre-c 6中执行此操作的默认方法要详细得多,但它只是语法-这相当于:

1
2
3
4
5
6
7
8
9
public class Foo
{
    private int _bar = 1;
    public int Bar
    {
        get { return _bar; }
        set { _bar = value; }
    }
}