2015-08-27 95 views
2

我:檢查屬性的嵌套/層次結構是否爲空?

label.Text = myObject.myNestedObject.MyNestedObject2.Description; 

哪裏的標籤是asp.net標籤。問題是,有時myObject的,myNestedObject,MyNestedObject2或描述爲空,我必須檢查它的if語句,它看起來像:

if(myObject!=null&&myNestedObject!=null&&MyNestedObject2!=null&&Description!=null) 
{ 
label.Text = myObject.myNestedObject.MyNestedObject2.Description; 
} 

在此聲明我檢查四次屬性是否爲空。是否有任何其他方式來檢查整個層次結構?

回答

1

C# null-conditional operators來救援!

從MSDN網站摘自:

int? length = customers?.Length; // null if customers is null 
Customer first = customers?[0]; // null if customers is null 
int? count = customers?[0]?.Orders?.Count(); // null if customers, the first customer, or Orders is null 
+0

我認爲這是.NET框架的新版本的一個很好的答案,但我在我的項目中使用.NET 4.5和可惜這有用的選項不起作用。 – ElConrado

+0

不幸的是,在舊版本的語言中沒有與新的空條件運算符等價的東西。請注意,.NET Framework版本和語言(C#)版本之間存在巨大差異。您可以使用VS2015和更新的C#語言功能,並仍以.NET 4.5爲目標。 –