我应该明确设置属性吗?

时间:2016-02-28 11:41:55

标签: c# properties initialization

我们上课:

public class Test
{
     public int A { get; set; }
}

然后我们创建这个类的实例:

Test test = new Test();

当我们创建一个对象时,A属性应为0。我应该在0的构造函数中明确地将此属性设置为Test吗?

public Test()
{
     A = 0;
}

3 个答案:

答案 0 :(得分:2)

public class Test
{
     public A { get; set; }
}

无法正常工作,因为您没有为变量A指定数据类型。

我认为你的意思是:

public class Test
{
     public int A { get; set; }
}

默认A在实例化Test的新实例时为0。

作为补充说明,构造函数是初始化变量的好地方,但是在这种情况下,当编译器自动处理变量时,我不会将它用作将变量设置为0的访问点。

答案 1 :(得分:1)

假设你的意思,

 public int A { get; set; }

不,您不需要设置默认值。编译器不会抱怨或任何事情。

如果您仍然想要,请将其设置为清晰的代码。它有助于读者理解您明确希望初始值为零并删除任何猜测工作。人们通常这样做,如果0具有商业意义或代码清晰。

答案 2 :(得分:0)

是的,这是目前正确的做法。在C#6中,您可以直接设置它。

public int A { get; set; } = 0;

您的原因可以有一个私有字段(支持字段),该字段最初设置为0。

原因是默认情况下int为0。因此,如果您需要将其设置为某个不同的值,那么这将是正确的方法。