gpt4 book ai didi

c# - 我对这段代码的理解是否正确?

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:53 25 4
gpt4 key购买 nike

我正在审查我们的一个承包商的一些代码:

if (userLists != null)
{
Int32 numberOfItems = userLists.Count;
if ((numberOfItems & 1) == 1)
{
var emptyList = new tblList();
userLists.Add(emptyList);
}
}

现在,我正在努力理解这一点,所以,有人可以向我确认一下我是否理解正确吗?

  1. 我们有 userList 的实例吗?
  2. 是的。获取 userLists 对象中的项目数。
  3. 如果(项目数等于 1(是/真)AND 1 等于 1(是/真))且结果等于 1(是/真),则向列表添加一个空列表对象。
  4. 否则:没有。

如果是这样(W.T.FFFFFFFFFFFFFFFFFFFF !!!!!!!!!!),可以重构为

if (numberOfItems == 1)
{
..
}

但即使这样也很糟糕,因为我不想要一个包含“空”项的列表。

那么我是否正确阅读了那段代码?

哦,对 Int32Int 的使用又叹了一口气 :((但我离题了)。

最佳答案

& 就是所谓的按位运算符。而运算符 && 测试两个 bool 值:

TRUE && FALSE => FALSE
TRUE && TRUE => TRUE

& 运算符可以处理整数值:

  00101101 (45)
& 01011011 (91)
---------------
= 00001001 (9)

每个位 都进行了 bool 运算(和)。因此,就您的代码示例而言,它询问“最后一位是 1 吗?” - 也就是说“这很奇怪吗?”例如,如果数字是 23:

  00010111 (23)
& 00000001 (1)
---------------
= 00000001 (1)

所以它添加到列表中,因为 1 == 1。但是如果数字是 22:

  00010110 (22)
& 00000001 (1)
---------------
= 00000000 (0)

因此它不会添加到列表中。

关于c# - 我对这段代码的理解是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/828165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com