内容简介:延迟计算属性的值,应该很多小伙伴都经常使用。比如在属性的但这样的写法存在一个很大的问题——如果你使用 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 调试器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
React开发实战
[美] Cássio de Sousa Antonio / 杜伟、柴晓伟、涂曙光 / 清华大学出版社 / 2017-3-1 / 58.00 元
介绍如何成功构建日益复杂的前端应用程序与接口,深入分析 React库,并详述React生态系统中的其他工具与库,从而指导你创建完整的复杂应用程序。 你将全面学习React的用法以及React生态系统中的其他工具和库(如React Router和Flux 架构),并了解采用组合方式创建接口的佳实践。本书简明扼要地讲解每个主题,并呈现助你高效完成工作的细节。书中严谨深刻地讲述React中重要的功......一起来看看 《React开发实战》 这本书的介绍吧!
JS 压缩/解压工具
在线压缩/解压 JS 代码
正则表达式在线测试
正则表达式在线测试