gpt4 book ai didi

C# 固定大小数组

转载 作者:行者123 更新时间:2023-12-03 17:03:35 25 4
gpt4 key购买 nike

我开始学习 C#,我通常使用 C++。
我正在尝试适应很多事情,但是 std::array好像不可能……

我只想运行这种代码:

public struct Foo {};
public struct Test
{
public Foo value[20];
};

我不想每次使用这个结构时都分配,我也不想使用一个类......
我看到了 fixed关键字,但它仅适用于基本类型...
不存在像 std::array 这样简单的东西?
我什至可以在 C 中做到这一点。

你会如何解决这个问题? (即使它仍然是动态分配的..)

最佳答案

使用固定大小的缓冲区 ( fixed ) 仅适用于原始类型,因为它旨在用于互操作。数组类型是引用类型,因此它们可以具有动态大小:

public struct Test 
{
public Foo[] value;
}

但是请注意,复制结构只会复制引用,因此数组将是相同的。我建议您要么使类型不可变(通过禁用写入数组),要么更改 structclass并明确控制克隆。

C# 中没有固定大小的按值数组类型这样的东西(尽管我已经提出过一次)。最接近它的是值元组。

关于C# 固定大小数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53768951/

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