所以我有这个属性,并且想要将值设置为从db返回的值,或者如果它为空则设置为null.可以使用if-else执行此操作,但是为了更清晰的代码,我想使用三元运算符.有人能指出我犯的错误.谢谢!!!
public DateTime? OptionExpiration {get;set;}
//actually sets the value to null
if(String.IsNullOrEmpty(dr["OPTION_EXPIRATION"].ToString())){
OptionExpiration = null;
}else{
OptionExpiration = DateTime.Parse(dr["OPTION_EXPIRATION"].ToString());
}
Run Code Online (Sandbox Code Playgroud)
//所以我检查字符串是空还是null,然后尝试设置值但收到此错误:错误2运算符'|' 不能应用于''和'System.DateTime?'类型的操作数
String.IsNullOrEmpty(dr["OPTION_EXPIRATION"].ToString())
? OptionExpiration = null
| OptionExpiration = DateTime.Parse(dr["OPTION_EXPIRATION"].ToString())
;
Run Code Online (Sandbox Code Playgroud)
您正在使用三元运算符错误.
它应该是:
OptionExpiration = String.IsNullOrEmpty(Convert.ToString(dr["OPTION_EXPIRATION"]))
? (DateTime?)null
: DateTime.Parse(dr["OPTION_EXPIRATION"].ToString())
;
Run Code Online (Sandbox Code Playgroud)
所以:
assignment = condition ? trueExpression : falseExpression;
Run Code Online (Sandbox Code Playgroud)
如果该字段是date数据库中的字段,则执行此操作可能更好:
OptionExpiration = Convert.IsDBNull(dr["OPTION_EXPIRATION"])
? (DateTime?)null
: (DateTime)dr["OPTION_EXPIRATION"]
;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |