关于索引器

YUHUI01 2017-11-14 03:36:37
在下面的索引器中,最后一句代码是什么意思?有什么作用?
get
{
return (bits & (1 << index)) != 0;
}
set
{
if(value)
{
bits |= (1 << index);
}
else
{
bits &= ~(1 << index); //??????
}

就是这句(bits &= ~(1 << index);),不是很懂,请求大神帮忙解答一下
...全文
166 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-11-15
  • 打赏
  • 举报
回复
if(value) { bits |= (1 << index); 如果 value为真,则对 bit 的 inde 位置位(由 0 变为 1) } else { bits &= ~(1 << index); //否则 bit 的 inde 位复位(由 1 变为 0) } 既然你对位运算并不陌生,那你本来就该理解,并不需要我说明 至于为什么要这样做,那就要看上下文了 而 bits &= ~(1 << index); 这个表达式与是否是索引器并无直接的关系
正怒月神 2017-11-15
  • 打赏
  • 举报
回复
抱歉,我更正一下3楼的发言,我搞错了。& | 是非短路的。前后还是会执行的。 &&和||是短路运算符。
正怒月神 2017-11-15
  • 打赏
  • 举报
回复
引用 6 楼 YUHUI01 的回复:
位运算我会,如果我没错的话,你最后一句说错了,X|Y,只要X为true,后面的才不看 我不懂的是,我给出的代码最后一句算出来的结果对索引器有什么用
抱歉,最后一句,我没说清楚,这个情况是在说x & y。 主说最后一句的具体意思。我觉得你应该给出上下文在看
YUHUI01 2017-11-15
  • 打赏
  • 举报
回复
引用 3 楼 hanjun0612 的回复:
这个你要看一下 位运算符了。 1 ~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位 2 左移运算符 (<<) 将第一个操作数向左移动第二个操作数指定的位数 3 使用 &= 赋值运算符的表达式,例如 x &= y 等效于 x = x & y 4 使用 |= 赋值运算符的表达式,例如 x |= y 等效于 x = x | y x & y和 x|y 都是短路运算。就是 只要x为false,后面就不看了 具体看 https://msdn.microsoft.com/zh-cn/library/h5f1zzaw(v=vs.110).aspx
位运算我会,如果我没错的话,你最后一句说错了,X|Y,只要X为true,后面的才不看 我不懂的是,我给出的代码最后一句算出来的结果对索引器有什么用
YUHUI01 2017-11-15
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
表达式离开了语境,就什么都不是
我只是在学索引器 上面的是索引器的声明代码 下面是引用代码 int adadted = 126; IntBits bits = new IntBits(adapted); bool peek = bits[6]; bits[0] = true; bits[3] = false; 位 的运算我会,我知不知道算出来的else那段有什么用?
xuzuning 2017-11-14
  • 打赏
  • 举报
回复
表达式离开了语境,就什么都不是
正怒月神 2017-11-14
  • 打赏
  • 举报
回复
这个你要看一下 位运算符了。

1 ~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位

2 左移运算符 (<<) 将第一个操作数向左移动第二个操作数指定的位数

3 使用 &= 赋值运算符的表达式,例如
x &= y
等效于
x = x & y

4 使用 |= 赋值运算符的表达式,例如
x |= y
等效于
x = x | y

x & y和 x|y 都是非短路运算。
具体看 https://msdn.microsoft.com/zh-cn/library/h5f1zzaw(v=vs.110).aspx
xuzuning 2017-11-14
  • 打赏
  • 举报
回复
上下文呢
真相重于对错 2017-11-14
  • 打赏
  • 举报
回复
msdn请查位运算

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧