当前位置:  开发笔记 > 编程语言 > 正文

私有字段和私有属性之间的差异

如何解决《私有字段和私有属性之间的差异》经验,为你挑选了3个好方法。

使用私有属性而不是私有字段有什么区别

private String MyValue { get; set; }

// instead of

private String _myValue;

public void DoSomething()
{
   MyValue = "Test";

   // Instead of

   _myValue = "Test";
}

有任何性能问题吗?或只是一个命名惯例?



1> tvanfosson..:

私有属性允许您抽象内部数据,以便对内部表示的更改不需要影响实现的其他部分,即使在同一个类中也是如此.私人领域不提供这种优势.使用C#3.0中的自动属性,我很少看到需要直接实现字段 - 私有或公共.


但是,如果您确定它需要除了无逻辑的一行getter和setter之外的东西,那么将字段重构为属性并不需要花费任何成本.

2> JaredPar..:

您可以从房产(私人,公共......)获得的巨大收益是它可以产生计算值与设定值.例如

class Person { 
  private DateTime _birthday;
  private int _age { get { return (DateTime.Now - _birthday).TotalYears; }
}

此模式的优点是,必须仅为N个其他值更新一个值以反映更改.无论可访问性如何,属性都是如此.私有财产与非私有财产没有特定的优势(当然,除了私有财产外)



3> Raminder..:

你很少想私有财产.提供私人财产只是为了完整起见.如果你的属性只是获取/设置字段的值,那么没有性能差异,因为它很可能由JIT编译器内联.


没有给出这个答案的理由.其他答案解释了为什么私有财产比私人领域更可取.
推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有