是否有运营商或内置功能simplyfy此:??运营商system.DBNull
myVal = object1.object2.something(a,b).dataColumn.toString()==""?object1.object2.something(a,b).dataColumn.toString():"-";
我知道我可以这样做:
string str = object1.object2.something(a,b).dataColumn.toString();
myVal =str==""?"-":str;
,但我有很多目标,我想避免:
string str1 = object1.object2.something(a,b).dataColumn1.toString();
myVal1==""?str1:"-"
string str2 = object1.object2.something(a,b).dataColumn2.toString();
myVal2==""?str2:"-"
:
string strN = object1.object2.something(a,b).dataColumnN.toString();
myValN==""?strN:"-"
我还可以创建一个功能:
private string CheckNull(object dataColumn){
return dataColumn == System.DBNull?"-":dataColumn.toString();
}
myVal1 = CheckNull(object1.object2.something1(a,b).dataColumn.toString())
myVal2 = CheckNull(object1.object2.something2(a,b).dataColumn.toString())
myVal3 = CheckNull(object1.object2.something3(a,b).dataColumn.toString())
最简单的方法是使用??运算符,但问题是'dataColumn'不兼容?因为有时会返回一个system.DBNull而不是null。看着眼前的窗口输出:
System.DBNull??"-"
'System.DBNull' is a 'type', which is not valid in the given context
null??"-"
"-"
我不知道是否有一些(串)函数或运算符可以返回“ - ”如果dataColumn.toString()==“”没有if..then(因为我将不得不作出的所有的人都很多if..then否则,我宁愿用上面所示的函数方法
string str = object1.object2.something(a,b).dataColumn.toString().if("","-");
太棒了!我不知道如何重写/扩展字符串函数。谢谢! – tutetimas