将结构引用添加到C#列表中

前端之家收集整理的这篇文章主要介绍了将结构引用添加到C#列表中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
试图保持我的C#代码优化,我发现如果我有一个结构元素列表,每个插入将是一个完整的副本 – 我想避免的东西.

在C中我只会保留一个指针列表,所以我想知道我是否可以使用C#做同样的事情,也许将列表作为结构的引用列表.
不幸的是,结构不能变成一个类,因为它是XNA库的一部分(Vector3,Matrix等…)
无论如何 – 如果可能,格式和用法会如何?

谢谢.

解决方法

不,基本上.选项:

>使用课程(你已经说过你不能)
>盒子吧
>写一个包装它的类(基本上是手动装箱)
>使用数组,只能通过索引直接在数组中访问它(不需要复制到变量中);然后直接与数组中的项目对话(无副本)

作为最后一个例子;

if(arr[idx].X == 20) SomeMethod(ref arr[idx]);

.X和SomeMethod中的任何用法都是直接在数组中访问值,而不是副本.这仅适用于矢量(数组),而不是列表.

建立refs列表的一个原因是不可能的:它允许你在列表中存储堆栈中变量的地址;数组通常比堆栈上的变量更长,所以这将是非常不安全的

猜你在找的C#相关文章