gpt4 book ai didi

c# - 添加对列表 c# 结构的引用

转载 作者:行者123 更新时间:2023-11-30 17:08:32 24 4
gpt4 key购买 nike

我在 XNA 中遇到 BoundingSpheres 问题。我想将 BoundingSphere 添加到 BoundingSphere 列表中。目前它是沿着:

Aircraft(Vector3 pos, float radius, CollisionManager colMan)
{
BoundingSphere sphere = new BoundingSphere(pos, radius);
colMan.AddSphere(sphere)
}


List<BoundingSphere> spheres = new List<BoundingSphere>();

CollisionManager()
{
spheres = new List<BoundingSphere>();
}

AddSphere(BoundingSphere boundingSphere)
{
spheres.Add(boundingSphere);
}

与其说是添加引用,不如说是添加值。我相信这是因为 boundingSpheres 是结构?我怎样才能解决这个问题?我尝试了 ref 关键字,但列表中的值仍未更新。

最佳答案

坦率地说,你不能,至少不能直接。结构是 value types ,因此按值传递和存储。甚至明智地使用 ref关键字不会绕过它,因为 List<T>.Item不能返回对值类型的引用。

解决方法是将您的 struct进入class ,或嵌入 stuctclass 里面,或者,只是处理它是一个值类型的事实并适本地对待它(即,不要试图修改本地副本,而是在更改时替换列表中的值)。在我看来,最后一个选项是最好的。

关于c# - 添加对列表 c# 结构的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com