1

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

可以写:

private myClass mc = new myClass();

或者:

private myClass mc { get; set; }

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

我总是倾向于将其用作field. 使用类作为一个有什么缺点property吗?我在谷歌上做了一些搜索,但没有一个结果给我这个特定问题的好答案。

4

4 回答 4

3

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

于 2013-11-01T11:13:15.460 回答
0

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

private myClass mc;

public Foo()
{
    mc = new myClass();
}
于 2013-11-01T11:20:21.717 回答
0

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

于 2013-11-01T11:23:51.567 回答
0

我更喜欢第一种方式:

私人 myClass mc = new myClass();

因为:

  • 私有财产没有任何好处。
  • 如果您创建另一个构造函数,则会复制初始化代码,除非您创建一些 Init 方法或调用 this(),这不如简单地初始化字段那么清楚。
于 2013-11-01T11:30:12.497 回答