加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:06:41 所属栏目:百科 来源:网络整理
导读:试图保持我的C#代码优化,我发现如果我有一个结构元素列表,每个插入将是一个完整的副本 – 我想避免的东西. 在C中我只会保留一个指针列表,所以我想知道我是否可以使用C#做同样的事情,也许将列表作为结构的引用列表. 不幸的是,结构不能变成一个类,因为它是XNA
试图保持我的C#代码优化,我发现如果我有一个结构元素列表,每个插入将是一个完整的副本 – 我想避免的东西.

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

谢谢.

解决方法

不,基本上.选项:

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

作为最后一个例子;

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读