为了账号安全,请及时绑定邮箱和手机立即绑定

字段和属性之间有什么区别?

字段和属性之间有什么区别?

沧海一幻觉 2019-05-25 15:59:05
字段和属性之间有什么区别?在C#中,是什么使字段与属性不同,何时应该使用字段而不是属性?
查看完整描述

4 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

一个重要的区别是接口可以具有属性但不具有字段。对我来说,这强调应该使用属性来定义类的公共接口,而字段则用于类的私有内部工作。作为一项规则,我很少创建公共字段,同样我很少创建非公共属性。


查看完整回答
反对 回复 2019-05-25
?
万千封印

TA贡献1891条经验 获得超3个赞

我将举几个使用可能使齿轮转动的属性的例子:

  • 延迟初始化如果你有一个对象的属性,加载成本很高,但在正常的代码运行中没有被访问,你可以通过属性延迟加载。这样,它只是坐在那里,但是第一次另一个模块试图调用该属性时,它会检查底层字段是否为空 - 如果是,则继续并加载它,调用模块不知道。这可以大大加快对象初始化。

  • 脏跟踪:我在StackOverflow上从我自己的问题中实际了解到了这一点。当我有很多对象在运行期间可能已经更改了值时,我可以使用该属性来跟踪是否需要将它们保存回数据库。如果没有对象的单个属性发生更改,则IsDirty标志不会被触发,因此在决定需要返回数据库时,保存功能将跳过它。


查看完整回答
反对 回复 2019-05-25
  • 4 回答
  • 0 关注
  • 1252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信