C# if 语句 的缩写问题
来源:百度知道 编辑:UC知道 时间:2024/05/25 13:25:26
我想实现如下功能,从数据库读取,如果这一列为空,什么都不做,否则,赋值到文本框,为了简化语句,代码如下
read["姓名"]==DBNull.Value?tem="":f2.textBox1.Text=read["姓名"].ToString ();
为什么不行呢
read["姓名"]==DBNull.Value?tem="":f2.textBox1.Text=read["姓名"].ToString ();
为什么不行呢
1)DBNull.Value返回是bool型??
2)a?b:c的句式,b和c只能是值,不能是操作...
textBox1.Text = (read["姓名"]==null || read["姓名"]=="") ? "": read["姓名"].ToString();
三目运算其实是赋值表达式..不是判断语句
textBox1.Text = (read["姓名"]=="" || read["姓名"]==null) ? read["姓名"].ToString : "";
(read["姓名"]==DBNull.Value)?tem="":f2.textBox1.Text=read["姓名"].ToString ();
这就可以了,加个括号而已。
textBox1.Text = read["姓名"] == System.DBNull.Value ? textBox1.Text : read["姓名"].ToString();
f2.textBox1.Text = (read["姓名"].ToString() == "" || read["姓名"] == null) ? f2.textBox1.Text : read["姓名"].ToString();