我正在编写大量与此类似的代码:
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#中做这样的事情......或者我想更好的问题是,“是否有一个标准的成语填满了目的?” (这样做的目的是确保我可以使用非空值。)
答案 0 :(得分:4)
您可以使用??
运算符
string strVariableName = (row["VariableName"] ?? "").ToString();
如果你想让你的函数写下这个:
string DEFSTRVAR(string name, DataRow row, string default) // put real type of row !
{
return (row[name]??default).ToString();
}
答案 1 :(得分:3)
我认为你正在寻找null-coalescing operator。 E.g:
string strVariableName = (row["VariableName"] ?? "default value").ToString();
答案 2 :(得分:3)
试试这个:
string strVariableName = (row["VariableName"] ?? string.Empty).ToString();