繁体   English   中英

使用三元运算符在C#中验证String.IsNullOrEmpty

[英]validating String.IsNullOrEmpty in C# with ternary operator

在大多数情况下,当我使用C#并需要验证空字符串或空字符串时,我使用以下方法:

 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;

但是即使属性data.value中没有任何值,BTW data.value是一个字符串,但始终返回true,请问我的句子是否正确或者是什么问题?

首先,您不能使用string value = DBNull.Value因为这些类型不兼容。 您必须强制转换为System.Object的通用类型,然后赋值就变成了这种类型,它使用强制转换来确保类型兼容性:

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

如果要检查空白,可以使用IsNullOrWhiteSpace代替IsNullOrEmpty

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM