2014-07-02 37 views
0

如果你不知道它的價值是什麼,那麼最好的方法是什麼?我正在瀏覽可能來自某個對象的任何類型的對象。如果我不知道可能的回報價值是什麼,我該如何投資?當不知道返回值時否定一個字符串或任何類型?

string viewValue 
    = emop.Object[null, viewDetails.Columns[i].Property] != null 
      ? emop.Object[null, viewDetails.Columns[i].Property].Value.ToString() 
      : string.Empty; 

我想這可能是更好的施展所有對象的字符串,但有些項目它的失敗在說產品無效。

+0

目前尚不清楚爲什麼你需要將它們轉換爲字符串,用雙重數據抽取內存。這背後的原因是什麼? – Tigran

+0

哦,我猜**你可能還會檢查'Value'是不是'null'(不僅是'emop.Object [null,viewDetails.Columns [i] .Property]')。不要這麼做,它足夠讓人困惑... –

+1

你的代碼失敗,因爲你正在檢查項目是否爲空,但然後*不*在調用.ToString()之前檢查.Value是否不爲空。在上面。 – JoelC

回答

1

沒有批准您將所有對象轉換爲字符串,因爲我不知道您正在處理的數據。我相信這會解決你的實際錯誤。

string viewValue 
= emop.Object[null, viewDetails.Columns[i].Property] != null && emop.Object[null, viewDetails.Columns[i].Property].Value != null 
     ? emop.Object[null, viewDetails.Columns[i].Property].Value.ToString() 
     : string.Empty; 

我對.Value屬性添加了一個非空檢查。否則調用.ToString()可能會調用空對象。

相關問題