【发布时间】:2012-08-23 19:16:25
【问题描述】:
当我创建一个具有恒定大小的数组时,我试图了解幕后发生的事情,如下所示:
[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,但进展不大。
我似乎只是找到了一个可以提供良好概念理解的资源。因此,任何资源以及答案都将不胜感激。
谢谢你, 布莱克
【问题讨论】: