gpt4 book ai didi

c# - 单点触控 : About value types as Dictionary Keys

转载 作者:可可西里 更新时间:2023-11-01 05:13:58 25 4
gpt4 key购买 nike

它说使用值类型作为字典键将“在设备上相当快地崩溃和燃烧”,这是否意味着我不能使用像 Dictionary 这样的东西来制作字符串查找表?

最佳答案

It says that using value types as dictionary keys will "crashes and burns rather quickly on the device",

它不是那么戏剧化(没有燃烧)或那么自动 - 但它可能会发生。

Apple 不允许在设备上进行 JIT(即时)编译。这意味着一切都必须在部署到设备之前进行预编译(提前)。这意味着一些limitations MonoTouch 存在,而 .NET/Mono 或 Mono for Android 则没有。

general中,泛型生成的代码可以在不同类型之间共享。遗憾的是,对于值类型,这不可能。这意味着 AOT(提前)编译器必须为每个使用的值类型生成代码。

在某些情况下,AOT 编译器可能无法检测到运行时可能 需要的所有可能类型。这将导致 EngineExecutionException这会将您指向有问题的代码。

在这个阶段你可以尝试:

  • 提示需要代码的 AOT 编译器(即添加一些代码,使 AOT 编译器生成所需的缺失代码);或者

  • 重构代码,例如避免值类型;

does that means I can't use something like Dictionary to make a string lookup table?

不,那会起作用。当您创建 Dictionary<int, string> 的实例时那么 AOT 编译器就很容易知道需要生成什么代码。

问题通常发生在嵌套泛型或使用泛型代码时(例如,具有值类型的 LINQ 查询可以生成此类代码)。

关于c# - 单点触控 : About value types as Dictionary Keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332013/

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