公共财产和私人会员C#

时间:2009-04-27 23:36:06

标签: .net variables properties

仅使用公共属性而不是使用公共属性访问私有变量有什么好处?

例如

public int iMyInt { get; set; }

而不是

private int myint;
public int iMyInt { get { return myint; } set { myint = value; } }

除了让.NET管理属性下的变量/内存之外,有什么优点(或者这个问题的缺点)?

6 个答案:

答案 0 :(得分:11)

使用自动属性(第一个示例)需要更少的输入。

强烈建议只使用公共属性而不是公共字段。许多属性都是围绕私有字段的简单包装器。自动属性可以节省您手动创建属性和支持字段的时间和麻烦。

您提到的简单案例的自动和手动属性背后的实际代码应该几乎相同。

答案 1 :(得分:8)

我建议,除了要求更少的输入更重要的是提高代码的可读性。我通常建议使用自动属性作为我的默认选项,并且只有在对它们有特殊要求时才切换到显式属性。

答案 2 :(得分:4)

一旦编译成IL,两者几乎相同。

我个人的经验法则是使用自动属性。它们更简洁,并且需要更少的输入,而且我知道,当我使用它们时,它们只是一个没有逻辑的简单包装器。

如果我以后需要添加逻辑,那么很容易切换到我自己的支持字段,并且没有(外部)后果。

答案 3 :(得分:1)

在获得或设置属性之前,您希望某些事情发生之前,这种方式没有任何区别。

例如,如果您想要一个OnMyIntSet事件,则无法使用自动属性语法。

答案 4 :(得分:1)

除非另有需要,否则我个人偏好自动属性。

使用自动属性的好处当然是简洁。它占用的空间更少,阅读更容易,输入更容易。

缺点是您无法再访问私有支持变量,有时您需要

所以:当你需要使用私有支持变量时,使用“旧”方法。如果不这样做,请使用自动属性。永远不要使用公共领域。那只是疯狂的谈话。

答案 5 :(得分:0)

快速说明:自动实现的属性必须同时定义get和set访问器。