大部分时间我使用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是一个字符串,如果我的句子是正确的或者似乎是什么问题,请你告诉我吗?
答案 0 :(得分:4)
首先,您无法使用string value = DBNull.Value
,因为这些类型不兼容。你必须强制转换为System.Object
的公共类型,然后赋值变为this,它使用强制转换来确保类型兼容性:
object value = String.IsNullOrEmpty(data.value)
? (object) DBNull.Value
: (object) data.value;
如果您想检查空格,可以使用IsNullOrWhiteSpace代替IsNullOrEmpty