内容简介:延迟计算属性的值,应该很多小伙伴都经常使用。比如在属性的但这样的写法存在一个很大的问题——如果你使用 Visual Studio 调试,当你把鼠标划到对象的实例上的时候,属性就会立刻开始进行初始化。而此时对你的代码来说可能就过早初始化了。我们不应该让调试器非预期地影响到我们程序的执行结果。本文介绍如何避免调试器不小心提前计算本应延迟计算的值。
延迟计算属性的值,应该很多小伙伴都经常使用。比如在属性的 get
方法中判断是否已初始化,如果没有初始化则立即开始初始化。
但这样的写法存在一个很大的问题——如果你使用 Visual Studio 调试,当你把鼠标划到对象的实例上的时候,属性就会立刻开始进行初始化。而此时对你的代码来说可能就过早初始化了。我们不应该让调试器非预期地影响到我们程序的执行结果。
本文介绍如何避免调试器不小心提前计算本应延迟计算的值。
方法是在属性上添加一个特性 DebuggerBrowsableAttribute
。
private Walterlv _foo; [DebuggerBrowsable(DebuggerBrowsableState.Never)] public Walterlv Walterlv => _foo ?? (_foo = new Walterlv()); public bool IsInitialized => !(_foo is null);
当指定为不再显示的话,在调试器中查看此实例的属性的时候就看不到这个属性了,也就不会因为鼠标划过导致提前计算了值。
当然,如果你希望为你的类型定制更多的调试器显示方式,可以参考我的另一篇博客:
参考资料
以上所述就是小编给大家介绍的《.NET/C# 避免调试器不小心提前计算本应延迟计算的值》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- GNU 调试器 GDB 10.1 发布
- GNU 调试器 GDB 8.3 发布
- GNU 调试器 GDB 8.3 发布
- 浅析常见 Debug 调试器的安全隐患
- RubyMine 2018.1 EAP 发布,升级调试器
- dlua 0.1 发布,gdb 风格的 lua 调试器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web2.0策划指南
艾美 / 2009-11 / 32.00元
《Web2.0策划指南(影印版)》是讲述战略的。书中的示例关注的是Web 20的效率,而不聚焦于技术。你将了解到这样一个事实:创建Web 20业务或将Web 20战略整合到业务中,意味着创建一个吸引人们前来访问的在线站点,让人们愿意到这里来共享他们的思想、见闻和行动。当人们通过Web走到一起时,可能得到总体远远大于各部分和的结果。随着传统的“口碑传诵”助推站点高速成长,客户本身就能够帮助建立站点。......一起来看看 《Web2.0策划指南》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
HTML 编码/解码
HTML 编码/解码