又是另一种引用/值类型误用

本文关键字:类型 另一种 引用 | 更新日期: 2023-09-27 18:35:30

看起来我没有设法理解引用和值类型列表背后的概念。

在这里,我想填充一个包含 30000 个 uint16 的数组,一次包含 125 个值。

完成后,我想将其添加到列表中并开始填充另一个 30000 个值的块。但是,我只存储对一个数组的引用。下面是一个测试代码:

UInt16[] ND = new UInt16[30000];
OMD.Clear();
for (int i = 0; i < 30000; i++) ND[i] = (ushort)i;
OMD.Add(ND);
for (int i = 0; i < 30000; i++) ND[i] = 13;
OMD.Add(ND);

在第二个循环中,OMD 的第一个数组成员丢失其值并更改为 13。

又是另一种引用/值类型误用

您可以在每个循环后清除引用并创建一个新引用。

UInt16[] ND = new UInt16[30000];
OMD.Clear();
for (int i = 0; i < 30000; i++) ND[i] = (ushort)i;
OMD.Add(ND);
ND = new UInt16[30000];
for (int i = 0; i < 30000; i++) ND[i] = 13;
OMD.Add(ND);
相关文章: