我在C#中有如下代码:
If (this._university != Null and this._university.department !=null &&
this._university.department.class !=null &&
this._university.department.class.student != null &&
this._university.department.class.student.name != null &&
this._university.department.class.student.name.firstname != null &&
this._university.department.class.student.name.firstname !=String.empty)
{
// selecting first letter of Firstname
var F_firstname = this._university.department.class.student.name.firstname[0].tostring();
}
但是代码对于检查null对象看起来非常糟糕。我们有更好的方法来检查对象吗?
答案 0 :(得分:6)
如果您使用的是后来的C#版本之一。使用 Null-conditional Operators 可能会更好看。但是,无论如何,这是一个不寻常的代码,可能会指出需要重构一点。
var firstName = this._university?.department?.class?.student?.name?.firstname;
if(!string.IsNullOrEmpty(firstName))
{
...
}
<小时/>
进一步阅读
在执行a之前,测试左侧操作数的值为null 成员访问(?。)或索引(?[])操作;如果是,则返回null 左侧操作数计算为null。
指示指定的字符串是null还是空字符串。