对象null和空检查的最佳方法是什么?

时间:2018-05-29 04:45:47

标签: c#

我在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对象看起来非常糟糕。我们有更好的方法来检查对象吗?

1 个答案:

答案 0 :(得分:6)

如果您使用的是后来的C#版本之一。使用 Null-conditional Operators 可能会更好看。但是,无论如何,这是一个不寻常的代码,可能会指出需要重构一点。

var firstName = this._university?.department?.class?.student?.name?.firstname;
if(!string.IsNullOrEmpty(firstName))
{
   ...
}

<小时/>

进一步阅读

Null-conditional Operators

  

在执行a之前,测试左侧操作数的值为null   成员访问(?。)或索引(?[])操作;如果是,则返回null   左侧操作数计算为null。

String.IsNullOrEmpty

  

指示指定的字符串是null还是空字符串。