2014-01-17 19 views
0

,即作品:對面String.IsNullOrEmpty()或者我寫這個劇本的另一種方式

if (String.IsNullOrEmpty(item.Description)) 
{ 
    tbItemInput.Rows.Add(tbRow2); 
    tbItemInput.Rows.Add(tbRow3); 
    tbItemInput.Rows.Add(tbRow4); 
    tbItemInput.Rows.Add(tbRow5); 
} 
else if (item.Description.Equals("euro")) 
{ 
    tbItemInput.Rows.Add(tbRow4); 
    tbItemInput.Rows.Add(tbRow5); 
    tbItemInput.Rows.Add(tbRow2); 
    tbItemInput.Rows.Add(tbRow3); 
} 
else // I assume that this will always be "euro6" entry 
{ 
    tbItemInput.Rows.Add(tbRow2); 
    tbItemInput.Rows.Add(tbRow3); 
    tbItemInput.Rows.Add(tbRow4); 
    tbItemInput.Rows.Add(tbRow5); 
} 

,但我真的不喜歡它,但因爲我是一個PHP程序員,我沒有想法如何在ASP.NET中正確編寫它

想法是,如果值item.Description不存在或是「euro6」,它有一個選項,但如果值爲「euro」,則另一個一。 在PHP中我會做這樣的

if ($description == "euro") { 
    // first option 
} else { 
    // second option 
} 

但在.NET中,如果值未設置我得到一個錯誤,所以我做了一個錯誤的解決方法。

我可以得到一些幫助,使其成爲正確的方式嗎?

+1

您不需要在.NET中使用'String.Equals'來比較兩個字符串。 == ==運算符被重載,所以它不僅比較引用(如在java中)。它也處理'null'問題。 –

回答

3

「我得到一個錯誤」 是相當模糊的 - 你會得到一個NullReferenceException如果使用item.Description.Equals("euro")),但是這應該是罰款:

if (item.Description == "euro") 
{ 
    tbItemInput.Rows.Add(tbRow4); 
    tbItemInput.Rows.Add(tbRow5); 
    tbItemInput.Rows.Add(tbRow2); 
    tbItemInput.Rows.Add(tbRow3); 
} 
else 
{ 
    tbItemInput.Rows.Add(tbRow2); 
    tbItemInput.Rows.Add(tbRow3); 
    tbItemInput.Rows.Add(tbRow4); 
    tbItemInput.Rows.Add(tbRow5); 
} 
+0

如果沒有設置「item.Description」的值,這不會產生通知或類似的東西嗎? – Peon

+0

@Dainis:不,不會的。 ==運算符無任何問題處理無效。 –

+0

謝謝。我想我使用'Equals()'得到了太多的困擾,甚至沒有嘗試最明顯的解決方案;) – Peon

1
if (String.IsNullOrEmpty(item.Description) || item.Description == "euro6") 
{ 
    // Euro6 or default option 
} 
else 
{ 
    // Euro option 
} 

或者也可以簡單

if (item.Description == "euro") 
{ 
    // Euro option 
} 
else 
{ 
    // Not euro option(empty or euro6 or whatever) 
} 
0

試試這類代碼

  if (!String.IsNullOrEmpty(item.Description)) //check for item.Description is not empty and not null 
      { 
       if (item.Description.Equals("euro")) // check for determine item.Description has contain "euro" 
       { 
       /*code for when item.Description has contain "euro"*/ 
       } 
       else 
       { 
        /*code for when item.Description not contain "euro"*/ 
       }    
      } 
相關問題