当我创建一个具有恒定大小的数组时,我试图了解窗帘后面发生了什么:
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public float[] constArray;
我知道我可以使用fixed
关键字,但是ref
不再是选项,所有指针操作都必须在固定表达式中。
我要做的是解析XML文件并存储在数组中的给定索引处。因此,如果文件中有10个元素,我可能会设置以下内容:
for (int i = 0; i < 10; i++)
{
readElement("element", ref constArray[i]);
}
但是,constArray[i]
为null
。
可能需要进一步的实例化,但那么编组的重点是什么。我认为编组创建了ref
操作的对象来创建引用。
我通过reference types和value types阅读并找不到更多信息。我还阅读了其他一些内容,例如ref和referencing arrays,并取得了很大进展。
我似乎可以找到提供良好概念理解的资源。因此,非常感谢任何资源和答案。
谢谢你, 布雷克
答案 0 :(得分:1)
首先 - float
不能为空(如果你想要可空浮点数然后使用float?
),那么你的问题可能是未初始化的数组?
指示如何在托管代码和非托管代码之间编组数据。
这就是你想要的吗?或者你的目标就像跟随
一样简单float [] constArray = new float[10];
您确定需要简单数组吗?为什么不使用List<float>
?