我在想,有什么好的做法:
private int value;
public int Value { get { return this.value; } }
private int DoSomething()
{
return this.Value + 1;
//OR
return this.value + 1;
}
Run Code Online (Sandbox Code Playgroud)
所以,问题是你应该如何对待你的类变量.您应该通过您的酒店访问它们还是直接访问它们?
在这种情况下,它并不重要,但在你使用延迟加载变量的情况下,它很重要,你可以通过你的属性访问.例如:
private Myobject _value;
public Myobject Value
{
get
{
if (_value == null) _value = new MyObject();
return _value;
}
}
private MyObject DoSomething();
{
//If you access _value here, it might be null...
//so you should access it through the property:
return Value;
}
Run Code Online (Sandbox Code Playgroud)
如果您的方法通过直接调用字段而失败,您可以正确处理它,或者通过清理方法访问它 - 通过您的属性.
这一切都归结为您的应用程序的体系结构,为此您必须提出一个问题:从维护角度来看,最有意义的是什么?
我不得不说,如果该字段已正确初始化并且不会让您头疼直接访问它,那么直接访问它.如果它导致额外的工作(以及额外的维护),那么引用该属性.
和其他任何东西一样,权衡利弊.使用你自己的常识 - 标准战争是一种荒谬的分心.除非他们为你提供你自己没有想过的论据,否则不要浪费你的气息.如果您有正当理由选择您选择的路径,那么该路径是正确的 - 它取决于设计师的特权.
我对利弊的看法是这样的:
与财产一起:
和田地一起去:
所以我想我的方法是使用属性,除非我需要直接写入值,在这种情况下,我将使用该字段 - 因为我的属性是只读的,因此无法写入.
这只是我 - 你的财产可能是读/写,你可以从设计的角度决定直接访问该领域是好的 - 这也没关系.
诀窍总是出于某种原因做事,不要盲目做事只是因为.
| 归档时间: |
|
| 查看次数: |
469 次 |
| 最近记录: |