C# if 语句 的缩写问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:25:26
我想实现如下功能,从数据库读取,如果这一列为空,什么都不做,否则,赋值到文本框,为了简化语句,代码如下

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();