獲取有關該代碼此錯誤的一個實例:對象引用不設置爲一個對象
string pname = null;
pname = ag.FirstOrDefault().arrangement.parent.name;
調用線PNAME = ag.FirstOrDefault當
.....
的日提交parent.name是空的(空),這很好,我想在這種情況下得到一個空(空)字符串。 我該如何擺脫錯誤?
獲取有關該代碼此錯誤的一個實例:對象引用不設置爲一個對象
string pname = null;
pname = ag.FirstOrDefault().arrangement.parent.name;
調用線PNAME = ag.FirstOrDefault當
.....
的日提交parent.name是空的(空),這很好,我想在這種情況下得到一個空(空)字符串。 我該如何擺脫錯誤?
嘗試
var obj = ag.FirstOrDefault();
if(obj !=null)
pname = obj.arrangement.parent.name ?? String.Empty;
,或者你可以嘗試
//This will set the variable to null:
var obj = ag.FirstOrDefault();
if(obj !=null)
pname = Convert.ToString(obj.arrangement.parent.name);
注:ag.FirstOrDefault()arrangement.parent.name是可空類型
要麼ag
爲空,則FirstOrDefault
呼叫返回空,arrangement
爲空,或parent
爲空。
只有你有能力確定哪一個實際上是罪魁禍首。
+1我會推薦使用哄騙或分成多個陳述。 – Euphoric 2011-04-28 11:38:01
您無法訪問空對象的屬性。如果ag.FirstOrDefault()將返回null,那麼您將無法訪問arrangement
。
var temp = ag.FirstOrDefault();
string pname = (temp!= null) ? temp.arrangement.parent.name : null;
您可能需要做進一步的空檢查。
如果屬性ag.FirstOrDefault()。arrangement.parent.name爲null,則表示對象ag也爲null。這是你得到對象引用錯誤的原因。
Leons提供的答案實際上就是我所建議的。你需要對這個問題做一些研究,這是它在編程中避免的一個最簡單的事情(試圖引用一個空對象)。
這不一定意味着'ag'爲空。 'ag'可能爲空; 'FirstOrDefault'的輸出可能爲空; '排列'成員可能爲空; 「父」成員可能爲空。 – LukeH 2011-04-28 11:50:36
這將拋出一個異常,如果'ag.FirstOrDefault()'返回null – Leons 2011-04-28 11:43:23
提交的parent.name爲空(空) - 這行是由op反正我正在更新我的 – 2011-04-28 12:08:46