C# 使用??字符串null或empty和DBNull.Value的运算符
我希望下面的逻辑是一行C# 使用??字符串null或empty和DBNull.Value的运算符,c#,sql-server,string,C#,Sql Server,String,我希望下面的逻辑是一行 string CastString(String str) { if (string.IsNullOrEmpty(str)) { return DBNull.Value.ToString(); } else { return str; } } 我试过的是 string.IsNullOrEmpty(str) ? DBNull.Value : str 有没有一种方法可以使用??接线员,我尝试的
string CastString(String str)
{
if (string.IsNullOrEmpty(str))
{
return DBNull.Value.ToString();
}
else
{
return str;
}
}
我试过的是
string.IsNullOrEmpty(str) ? DBNull.Value : str
有没有一种方法可以使用??接线员,我尝试的是
return str ?? DBNull.Value
但这不起作用三元运算符将使其成为一条线性
return string.IsNullOrEmpty(str) ? DBNull.Value.ToString() : str;
您缺少ToString(),但它仍然不会检查空字符串
return str ?? DBNull.Value.ToString();
??
检查空值,但在原始代码中也检查空字符串。因此,三元运算符在这里是理想的。它与sql server标记有什么关系?为什么要麻烦使用DBNull.Value.ToString()
它只会返回String.Empty
,如果返回的是对象
,而不是字符串
,那么执行返回DBNull.Value是有意义的代码>但执行返回DBNull.Value.ToString()代码>是没有意义的。“我希望下面的逻辑是一个单行程序”调用您已有的方法:CastString(someValue)只是一行,您可以将其声明为公共和静态,这可能会更方便。你还需要什么?我不认为当字符串为空时检查,我在我的评论中提到过,我只是纠正了他的代码中的错误