【发布时间】:2015-09-01 21:56:27
【问题描述】:
所以在下面的代码中,它是一个生成立方体面的简单脚本,我很好奇(并且只能在此处找到 C++ 示例)为什么 CreateTriangles 内部的 int[] 三角形能够从内部分配给即使我没有将它作为参考传递给 SetQuad。我对 C# 很陌生,所以如果这是一个愚蠢的问题,请原谅我,但从我在 MSDN 上读到的关于 refs 的内容来看,我显然不明白。 我原以为要获得这种效果,您需要使用“ref int[] ...”
private static int SetQuad (int[] triangles, int i, int v00, int v10, int v01, int v11){
triangles [i] = v00;
triangles [i + 1] = triangles [i + 4] = v01;
triangles [i + 2] = triangles [i + 3] = v10;
triangles [i + 5] = v11;
return i + 6;
}
private void CreateTriangles () {
int quads = (xSize * ySize + xSize * zSize + ySize * zSize) * 2;
int[] triangles = new int[quads * 6];
int ring = (xSize + zSize) * 2;
int t = 0, v = 0;
for (int y = 0; y < ySize; y++, v++) {
for (int q = 0; q < ring - 1; q++, v++) {
t = SetQuad (triangles, t, v, v + 1, v + ring, v + ring + 1);
}
t = SetQuad (triangles, t, v, v - ring + 1, v + ring, v + 1);
}
t = CreateTopFace (triangles, t, ring);
mesh.triangles = triangles;
}
【问题讨论】:
标签: c# methods parameter-passing