我倾向于使用私有属性而不是私有字段,因为如果需要可以扩展它们,所以我的大多数模型类看起来像这样:
public class MyClass
{
public MyClass(string name)
{
this.Name = name;
}
private string Name { get; set; }
private ISomeInterface SomeInterface { get; set; }
private bool IsSomething { get; set; }
public void Method(int parameter) { ... }
}
换句话说,我通常用私有属性替换私有字段。即使在类上下文中,也使用属性,而不是字段。其中大多数是自动属性。我经常发现我的类根本没有私有字段(嗯,只有自动属性的自动支持字段)。
如果你想改变行为,我发现这很有用(字段不允许这样的灵活性)。
我想知道这是一种不好的做法。
谢谢!
答案 0 :(得分:2)
这可能是一个偏好问题,但我不喜欢使用私有属性而不是私有字段:
_name
允许我快速区分私人和公共成员。当我在设置某个变量时需要执行一些额外的操作,或者在根据其他值计算值时,或者在延迟加载值时,我有时会使用私有属性。但是当我使用时,我清楚地看到那里发生了一些事情。这非常有用。如果所有字段都是属性,我就没有那个提示。