属性的默认值

2 c# initialization

如果您有这样的对象:

public class Foo
{
    private int _id;

    public int id
    {
        get { return _id; }
        set { _id = value; }
    }

    private string _name;

    public string name
    {
        get { return _name; }
        set { _name = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且您希望将id初始化为-1并将其命名为String.Empty,最佳做法是什么?(以及为什么)

这样做:

private int _id = -1
Run Code Online (Sandbox Code Playgroud)

要么

在构造函数中设置_id = -1和name = String.Empty?

Jar*_*Par 7

这不仅仅是一个风格问题.只有少数几个案例是功能性问题

  1. 当你有许多构造函数,它们都将字段初始化为相同的值.此时您有冗余代码,应该重构构造函数或使用字段初始化程序.
  2. 如果它取决于同一类层次结构中另一个字段的值,请不要使用字段初始值设定项.在部分类的绝对中,结果是可预测的,但仍然可以让人们循环.