gpt4 book ai didi

c# - 使用 System.Collections.Specialized.BitVector32 的问题 : a bug?

转载 作者:行者123 更新时间:2023-11-30 16:33:29 31 4
gpt4 key购买 nike

我正在尝试做一个简短的模拟,我需要一个小的位数组,我选择了 System.Collections.Specialized.BitVector32。

我在单线程对象中运行它,在单线程循环中运行大约 1,000,000 次,每次针对索引 {0,1,2}。

代码如下:

private System.Collections.Specialized.BitVector32 currentCalc 
= new System.Collections.Specialized.BitVector32();

private void storeInCurrent(int idx, bool val)
{
currentCalc[idx] = val;
if (currentCalc[idx] != val)
{
throw new Exception("Inconceivable!");
}
}

据我了解,不应抛出异常,但有时会抛出!并非每次都抛出异常,但有相当一部分 - 恒定的 1/6 的时间! (这更奇怪)

我做错了什么?

最佳答案

Look at MSDN ;索引器采用掩码,而不是索引。那就是:

int mask = 1 << idx;

然后使用currentCalc[mask]

不过这很奇怪;如果您愿意使用掩码 - 为什么要使用BitVector32,而不仅仅是一个int。我假设索引器会采用索引。非常奇怪的设计决定。

关于c# - 使用 System.Collections.Specialized.BitVector32 的问题 : a bug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3170555/

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