C#如何处理struct数组 - 我是否需要分配每个数组元素(就好像它是一个类对象数组)?
例:
public struct RGBA { public byte red, green, blue, alpha; }
public RGBA [] colorBuffer = new RGBA [1024*1024];
Run Code Online (Sandbox Code Playgroud)
现在colorBuffer是一个指向RGBA对象的指针数组,我是否必须分配它们,例如:
for (int i = 0; i < colorBuffer.Length; i++)
colorBuffer [i] = new RGBA ();
Run Code Online (Sandbox Code Playgroud)
或者colorBuffer指向一个4 MB大小的内存块,包含1 MB RGBA结构?
所述colorBuffer可变值是一个参考到阵列对象.数组对象本身将是一个对象,大小为4MB(4字节*1024*1024).数组是引用类型,但每个元素都是值类型.元素值是 RGBA值 - 它不是指针.
数组将自动初始化default(RGBA)为每个元素,您不需要执行自己的初始化.
如果你这样做:
RGBA[] other = colorBuffer;
Run Code Online (Sandbox Code Playgroud)
这只是复制一个引用 - 这两个变量现在引用相同的数组.
| 归档时间: |
|
| 查看次数: |
3906 次 |
| 最近记录: |