【发布时间】:2014-06-25 21:42:30
【问题描述】:
我倾向于使用私有属性而不是私有字段,因为它们可以在必要时进行扩展,所以我的大多数模型类看起来像这样:
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) { ... }
}
换句话说,我通常用私有属性替换私有字段。即使在类上下文中,也使用属性,而不是字段。其中大多数是自动属性。我经常发现我的类根本没有私有字段(嗯,只有自动属性的自动支持字段)。
如果您想更改行为,我发现这很有用(字段不允许这种灵活性)。
我想知道这是一种不好的做法。
- 如果这是一种不好的做法:为什么?
- 如果不是:您认为我应该在类中使用“this”关键字来提高可读性吗?
谢谢!
【问题讨论】:
-
据我所知,如果您有合理的理由这样做,当然可以接受。
-
为了正确起见,将所有“变量”实例重命名为“字段”。
-
这对我来说似乎可以接受,但我担心我在这里违反了一些规则。我希望有人能告诉我这是否会给我带来问题,或者这种做法是否被忽视。
-
您认为什么是“灵活性”?我认为实现你可能永远不会使用的东西是不好的做法,但我是谁。
-
Eric Lippert 有一个很好的回答:stackoverflow.com/a/3310469/3523746。但是,我同意 Sergey Berezovskiy 的观点,如果你只需要数据,最好使用字段。但有时在 Lippert 展示的情况下,拥有属性很有用
标签: c# properties coding-style naming-conventions conventions