我在C#方面不是很有经验,我以前在java工作过。我以前已经问了一些事情,有些人建议我这样做。 链接到我的旧主题here 但是我对这段代码有新的问题。 Visual Studio说“我不能在struct中有实例归档初始化器” - 所以有一些问题,但我真的不明白这个东西,所以在某种程度上可以使这个工作? 我只需要锚点类型Vector3,它是矩阵或数组数组 - 无论4x4 在java中我可能会写它 public Vector3 [] [] = new Vector3 [4] [4];
这是我有问题的代码:
[StructLayout(LayoutKind.Sequential)]
struct BPatch
{
public Vector3[][] anchors = new Vector3[][] {new Vector3[4],new Vector3[4],new Vector3[4],new Vector3[4]};
public uint dlBPatch;// Display list
public uint texture;// Texture
}
答案 0 :(得分:1)
当你有5个阵列时,你可能只是让它成为一个类。它表现得更明智:
class BPatch
{
private readonly Vector3[][] anchors = new Vector3[][] {new Vector3[4],new Vector3[4],new Vector3[4],new Vector3[4]};
public Vector3[][] Anchors { get { return anchors; } }
public uint DlBPatch {get;set;}
public uint Texture {get;set;}
}
如果你有很好的理由进行微优化,那么“固定”数组(而不是锯齿状数组)可能会很有趣。