c#idiom来检查/赋值变量

时间:2013-11-15 13:39:16

标签: c# variables default-value datarow validation

我正在编写大量与此类似的代码:

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#中做这样的事情......或者我想更好的问题是,“是否有一个标准的成语填满了目的?” (这样做的目的是确保我可以使用非空值。)

3 个答案:

答案 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();