Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用??字符串null或empty和DBNull.Value的运算符_C#_Sql Server_String - Fatal编程技术网

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)只是一行,您可以将其声明为公共和静态,这可能会更方便。你还需要什么?我不认为当字符串为空时检查,我在我的评论中提到过,我只是纠正了他的代码中的错误