可能重复:
C# ?:条件运算符
先声明:
if(dr["AskingPriceFrom"]!=System.DBNull.Value)
objFilters.AskingPriceFrom=Convert.ToDecimal(dr["AskingPriceFrom"]);
else
objFilters.AskingPriceFrom=null;
声明二:
objFilters.AskingPriceFrom=Convert.ToDecimal(
dr["AskingPriceFrom"]!=System.DBNull.Value ? dr["AskingPriceFrom"] : null
);
这两种说法有什么区别?
在第一个语句中,如果在if-else条件下 value 为空,则正确存储null值;但是,如果在第二个条件下 value 为空,那么它不会存储null值,而是存储0
. AskingPriceFrom
是一个 get-set 字段存储十进制值。我试图仅dr["AskingPriceFrom"]
在问号之后进行转换,但该语句给了我一个错误。
有没有办法保护空值不转换为十进制?