使用三元运算符

时间:2017-04-15 17:10:42

标签: c#

大部分时间我使用C#并需要验证null或空字符串我使用的方法:

 if (String.IsNullOrEmpty(s)) 
        return "is null or empty";
    else

但现在我需要以这种方式使用它:

string value= data.value==null?DBNull.Value:data.value;

我尝试在最后一句中使用这两个

string value= String.IsNullOrEmpty(data.value)?DBNull.Value:data.value;

但总是返回true,即使属性data.value中没有任何值,BTW data.value是一个字符串,如果我的句子是正确的或者似乎是什么问题,请你告诉我吗?

1 个答案:

答案 0 :(得分:4)

首先,您无法使用string value = DBNull.Value,因为这些类型不兼容。你必须强制转换为System.Object的公共类型,然后赋值变为this,它使用强制转换来确保类型兼容性:

object value = String.IsNullOrEmpty(data.value)
     ? (object) DBNull.Value
     : (object) data.value;

如果您想检查空格,可以使用IsNullOrWhiteSpace代替IsNullOrEmpty