squ*_*uig 4 .net null nullreferenceexception
我正在寻找一种很好的方法来处理对象层次结构中的空引用.
即:
if(null == Object1.Object2.Object3.Property)
Run Code Online (Sandbox Code Playgroud)
如果说Object2为null,则此示例将抛出Null Reference异常.
在我的情况下,我不在乎什么是null,只是有些东西.我真的不想在我希望做这样的事情的每个地方放置尝试/捕获,所以我一直在寻找替代方案.
我试过了?? 运算符,但这会在两个级别之后产生一些难看的代码.
任何想法都赞赏.
现在这可能正在切线......但我建议改变设计以避免丑陋和痛苦
电话Object1.Object2.Object3.Property违反了得墨忒耳的法律.相反,如果你应该到达那个属性,Object1应该公开一个Property本身...所以你应该调用Object1.RetrievedFromTheDepthsProperty
为什么这是需要的..如果Type Object2的设计者改变了''返回的Object的类型Object3'字段/属性为没有您正在寻找的属性的那个,您将被清除.客户端对Object1的内部结构了解太多.如果将Object1封装在数据位于内部的位置,则可以安全地防范将来的更改.此属性也可以根据需要在内部执行所有空值检查...让您更清洁
if (Object1.RetrievedFromTheDepthsProperty == null) {...}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |