微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

试图保持我的C#代码优化,我发现如果我有一个结构元素列表,每个插入将是一个完整的副本 – 我想避免的东西.

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

谢谢.

解决方法

不,基本上.选项:

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

作为最后一个例子;

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

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

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

原文地址:https://www.jb51.cc/csharp/92696.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐