Gab*_*ira 6 c# oop standards encapsulation coding-style
我总是被告知从类中封装任何和所有属性......
这是正确的:
private string propertyName;
public string PropertyName
{
get { return propertyName; }
set { propertyName = value; }
}
Run Code Online (Sandbox Code Playgroud)
这是错的
Public string PropertyName;
Run Code Online (Sandbox Code Playgroud)
我看不出需要封装的地方......对我来说,第一个代码就是无用的冗余代码......不需要封装那个字段......
因此,如果任何人都可以证明这个场景的封装是正确的.(我可以理解其他情况).
在大多数情况下,公共领域在实践中是可以的.毕竟,如果您以后需要从外部将其设置为只读,或者向其setter添加行为,那么您可以将其更改为属性.因此,您今天可以将其变为公共领域,如果需要,可以在以后进行更改.对?
问题是,在某些情况下,您以后无法安全地更改它:
这两种情况有多重要?可能不是很好.但是先发制人的写作更容易
public string PropertyName { get; set; }
Run Code Online (Sandbox Code Playgroud)
比它要收拾残局,如果你也有后来去改变它.
而且没有性能成本.无论如何,JIT编译器将内联getter和setter.所以它没有任何成本,并带来一些好处; 那时,为什么不使用房产呢?
| 归档时间: |
|
| 查看次数: |
5138 次 |
| 最近记录: |