2013-11-15 53 views
1

我寫了很多的代碼看起來與此類似:C#成語查詢/變量賦值

DataRow row = <some row queried from database table> 
string strVariableName = (row["VariableName"] ==) ? "" : row["VariableName"].ToString(); 

我想什麼寫的是這樣的:

string strVariableName = STRCHK(row["VariableName"]) 

或更妙的是,

DEFSTRVAR(VariableName, row, "default string") 

有沒有辦法做這樣的事情在C#......或者我想更好的問題是,「是否有填充一個標準的成語 目的?」 (這是目的,以確保我有非空值的工作。)

+1

我不太明白你的觀點,但會操作員?工作? –

回答

4

您可以使用??操作

string strVariableName = (row["VariableName"] ?? "").ToString(); 

,如果你想你的函數寫:

string DEFSTRVAR(string name, DataRow row, string default) // put real type of row ! 
{ 
    return (row[name]??default).ToString(); 
} 
+0

你忘了使用'default'參數。 – mao47

+0

@ mao47耶,謝謝:) – wudzik

3

試試這個:

string strVariableName = (row["VariableName"] ?? string.Empty).ToString(); 
+0

串strVariableName =行[ 「VARIABLENAME」]。的ToString()?的String.Empty; – elbillaf

+0

@elbillaf - 那將空對象上做的ToString()。其他答案是對的。 – mp3ferret

+0

如果'行[ 「VARIABLENAME」]'爲空,toString()方法將拋出一個異常,不是嗎? – oerkelens