日期:2014-05-19  浏览次数:20812 次

问个很菜的基础问题.
public   bool   Func(int   Value,   int   a)
                {
                        return   ((Value   &   a)   ==   Value);
                }
这个是什么意思?返回的是什么啊?

还有:
  public   int   Func(DataRow   dr)
                {
                        int   num   =   0;
                        if   (null   ==   dr)
                        {
                                return   0;
                        }
                        num   +=   (dr[ "x "])   ==   1)   ?   1   :   0;
                        num   +=   (dr[ "b "])   ==   1)   ?   2   :   0;
                        return   (num   +   (dr[ "c "])   ==   1)   ?   800   :   0);
                }
这里面
num   +=   (dr[ "ExecNew "])   ==   1)   ?   1   :   0;是什么意思啊?

------解决方案--------------------
if(dr[ "ExecNew "]==1)
{
num = num +1;
}
else
{
num =num +0;
}
------解决方案--------------------
Value & a
计算 Value 和 a 逻辑按位“与”

返回一个bool 值 true or false


num += (dr[ "ExecNew "]) == 1) ? 1 : 0;

(dr[ "ExecNew "]) == 1) ? 1 : 0
三元运算
如果dr[ "ExecNew "]的值为1 则num 加1 否则num 加0
------解决方案--------------------
第一个问题是按位与,value与a按位与后的值如果等于value则返回true,否则返回false.
第二个问题num += (dr[ "ExecNew "]) == 1) ? 1 : 0;
dr[ "ExecNew "]是数据行中的一个值,不过其函数内容你可不可以再重新发进来,好像和里面的内容又不相同了啊!
------解决方案--------------------
return ((Value & a) == Value)意思是:如果value和a按位与之后等于value吗(true或false)?
num += (dr[ "ExecNew "]) == 1) ? 1 : 0意思是:如果dr[ "ExecNew "]的值等于1,则num=num+1,不等于则num=num+0;