gpt4 book ai didi

c# - 如何在 .NET 中创建值类型集合?

转载 作者:行者123 更新时间:2023-11-30 23:33:56 24 4
gpt4 key购买 nike

我的应用程序的基本构建 block 类型分解为一个类型(类或结构),其中包含一些标准值类型(int、bool 等)和一些标准值类型的数组类型,其中会有一个小的 (但未知)集合中元素的数量。

鉴于我有许多上述构建 block 的实例,我想通过使用数组/集合作为值类型而不是标准引用类型来限制我的基本类型的内存使用。部分问题是我的标准用法是让数组中包含零个、一个或两个元素,并且在这种情况下数组引用类型的开销是令人望而却步的。

我根据经验观察和研究证实,数组包装器本身在每个实例中引入了不需要的(在这种情况下是我的)开销。

如何在 .NET 中使集合成为值类型/结构?

旁注:有趣的是,Apple 的 Swift 语言默认将数组作为值类型。

先发制人的评论

我完全知道以上是使用 .NET 框架的非标准方式,是非常糟糕的做法等...因此没有必要对此发表评论。我真的只想知道如何实现我的要求。

最佳答案

fixed 关键字引用 in the docs似乎是你在找什么。它对类型的限制与结构相同,但它确实需要 unsafe

 internal unsafe struct MyBuffer
{
public fixed char fixedBuffer[128];
}

如果你还想有一个固定的结构数组,那就更复杂了。 fixed 仅支持基值类型,因此您必须手动分配内存。

关于c# - 如何在 .NET 中创建值类型集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33669284/

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