gpt4 book ai didi

generics - 具有顺序布局和包大小的值类型的通用列表-> BUG?

转载 作者:行者123 更新时间:2023-12-04 14:35:33 28 4
gpt4 key购买 nike

当我运行 时,以下代码抛出 ExecutionEngineException发布 构建可执行文件(启动 exe 文件 )。这是错误还是正常行为?

包大小 = 1 的值类型:

[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct RunLong
{
public byte Count;
public long Value;

public RunLong(byte count, long value)
{
Count = count;
Value = value;
}
}

在泛型 List(T) 中使用结构体,添加值并获取或设置其 value 属性会使可执行文件崩溃,如果它是在 Release模式下构建的。在 Debug模式下构建可执行文件或在 Visual Studio 调试器(发布或 Debug模式)中运行代码时,不会发生崩溃。
List<RunLong> runs = new List<RunLong>(1024);

for (int i = 0; i < 1000; i++)
{
runs.Add(new RunLong(1, i));
}

RunLong last = runs[runs.Count - 1];

last.Count = (byte)(last.Count + 1);

runs[runs.Count - 1] = last;

有人可以证实这一点吗?有合理的解释吗?

我正在运行 VS 2010、.net 4、Win XP SP3

提前致谢!

最佳答案

此问题已于上周在 MS11-028 中修复。看我的 weblog详情。

关于generics - 具有顺序布局和包大小的值类型的通用列表-> BUG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3407616/

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