当前位置:编程学习 > C#/ASP.NET >>

三元的小问题

txtCapacity.Enabled = (rdoCar.Checked || rdoTruck.Checked) ? false : true;
不报错
但运行没效果
是不是三元只能判断true或者false,而对RadioButton的点击不感冒?
在线~~~~~~~~~~~ --------------------编程问答-------------------- txtCapacity.Enabled = (rdoCar.Checked || rdoTruck.Checked) ? false : true; 

可以简化为:

txtCapacity.Enabled = !(rdoCar.Checked || rdoTruck.Checked);

效果一样。 --------------------编程问答-------------------- 抛开一楼所的说简化,你的语句看起来并没有问题啊 --------------------编程问答--------------------
引用 1 楼 wuyi8808 的回复:
txtCapacity.Enabled = (rdoCar.Checked || rdoTruck.Checked) ? false : true;

可以简化为:

txtCapacity.Enabled = !(rdoCar.Checked || rdoTruck.Checked);

效果一样。

 --------------------编程问答-------------------- 是不是三元只能判断true或者false,而对RadioButton的点击不感冒?

看你的意思是想点击后有所反应的,那你应该在RadioButton的Click事件中添加这行代码的.要不然这个语句只是初始化一下最初的状态,你单击当然不会有反应. --------------------编程问答-------------------- 不是Click事件了,是CheckedChanged事件. --------------------编程问答-------------------- 你当我是猪啊,当然是在RadioButton的点击时间里面啦,而且还是2个RadioButton公用1个事件
就是没效果
用if和else就有效果
我就是想知道三元对RadioButton的点击是不是不感冒 --------------------编程问答--------------------  rdoCar.Checked? false: (rdoTruck.Checked ? false : true); 
--------------------编程问答-------------------- 还是没效果
我是想通过改变2个RadioButton的checked
改变txtCapacity.Enabled 的true或者false
自己的结论是三元只能对true或者false有反应
而不管是rdoCar点击了还是rdoTruck点击了,都得不到类似true或者false的结论
“||”只是个或者关系,不是真假大小的关系
所以想通过改变RadioButton来改变控件的Enabled 只能用if和else --------------------编程问答-------------------- txtCapacity.Enabled = (rdoCar.Checked || rdoTruck.Checked) ? false : true;

必须当rdoCar.Checked == false和rdoTruck.Checked == false时txtCapacity.Enabled才能为true
不知道这是不是你要的效果呢。

txtCapacity.Enabled 本身接收的是bool类型的值,而他本身不会去管你用的是什么办法得来的bool值,所以不管怎么说,你的"所以想通过改变RadioButton来改变控件的Enabled 只能用if和else"肯定是错的。呵 --------------------编程问答--------------------      if (rdoCar.Checked)
     {
         this.txtCapacity.Enabled = false;
     }
     else
     {
         this.txtCapacity.Enabled = true;
     }
就是这个,我就是想用三元,是不是钻牛角尖?
--------------------编程问答-------------------- this.txtCapacity.Enabled=!rdoCar.Checked; --------------------编程问答--------------------
引用 10 楼 cfasus 的回复:
    if (rdoCar.Checked)
    {
        this.txtCapacity.Enabled = false;
    }
    else
    {
        this.txtCapacity.Enabled = true;
    }
就是这个,我就是想用三元,是不是钻牛角尖?


你这个对应的是txtCapacity.Enabled = (rdoCar.Checked ) ? false : true; 
--------------------编程问答-------------------- 高人!
无言了...............
这就是传说中的代码节俭!!!!!!!!!!!!! --------------------编程问答--------------------
引用 10 楼 cfasus 的回复:
    if (rdoCar.Checked)
    {
        this.txtCapacity.Enabled = false;
    }
    else
    {
        this.txtCapacity.Enabled = true;
    }
就是这个,我就是想用三元,是不是钻牛角尖?


喂喂!!!你的 rdoTruck.Checked哪去了????这个if和你问题里的三元式是两回事好吧。
--------------------编程问答-------------------- 而且用三元式返回bool值,不是多此一举的事吗??...
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,