所以,我遇到了一个奇怪的问题。
为了让你了解我想要实现的目标,但却悲惨地失败了:
int[] testArray = new int[100];
typeof(int[])
.GetProperty("Length", BindingFlags.Instance | BindingFlags.Public)
.SetValue(testArray, 50);
是的,也就是说,我想修改C#数组的长度属性(只使它小于实际大小),不用制作新数组和复制内容 - 以避免GC等... < / p>
背景:
在Unity中,有这个功能:
void SetIndices(int[] indices, MeshTopology topology, int submesh, bool calculateBounds);
如你所见,SetIndices
并不接受&#34; start&#34;和&#34;结束&#34;或者至少&#34;长度&#34;作为参数。这就是为什么我想修改我的索引数组的长度来欺骗这个函数。
有什么想法吗?
答案 0 :(得分:1)
您无法在C#中调整array
的大小。这是一个很难的事实。
实际上,Array.Resize
方法会创建一个新数组,并将新数组的值复制到新数组中。