类初始化 - 属性与字段

时间:2013-11-01 11:10:54

标签: c# class properties initialization field

我想知道class initialization的最佳做法是什么。

可以写:

private myClass mc = new myClass();

或者:

private myClass mc { get; set; }

public Foo()
{
    mc = new myClass();
}

我总是倾向于将其用作field。将类用作property是否有任何缺点?我在google上做了一些搜索但没有一个结果给了我这个特定问题的好答案。

4 个答案:

答案 0 :(得分:3)

如果它是私人的,那么将其作为财产并没有明显的好处。我只是把它作为一个领域。我使用属性作为与其他类通信API的方式。

答案 1 :(得分:0)

您不必在第二个示例中使用属性。你可以把它写成:

private myClass mc;

public Foo()
{
    mc = new myClass();
}

答案 2 :(得分:0)

属性应该是getter / setter,这意味着它们提供了信息隐藏机制的一部分。将它们设为私有并不会有太大作用,因为班级中的所有方法都可以看到私有成员。

答案 3 :(得分:0)

我是第一种方式:

private myClass mc = new myClass();

,因为:

  • 私有财产没有任何好处。
  • 如果您创建另一个构造函数,则复制初始化代码,除非您创建一些Init方法或调用this(),这不像简单地初始化字段那样清晰。