在c#中,如何将两个结构类型的变量链接在一起



我的问题很简单;如何将两个结构链接在一起,以便在c#中修改其中一个会更改另一个?由于结构的性质,这可能吗?

在代码中,这就是我试图实现的:

Vector2 a = new Vector2(0.5f, 0.7f);
Vector2 b = a; // This line needs changing
b.X = 1.0f;
Debug.WriteLine(a.X); // should print 1.0f, but actually prints 0.5f.

就上下文而言,我正在MonoGame中制作一个游戏,需要将精灵位置链接在一起,这自然会使用内置的数据类型"Vector2";,它是一个结构体。

结构是值类型,因此它们是按值复制的。但是,如果您想通过引用参数或作为类成员的返回值来传递结构,则可以使用引用,这很方便。

例如:

var a = new ValueTuple<string, int>("foo", 1);
ref var b = ref a;

b.Item2 = 2;
Console.WriteLine(a);

请参阅https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/ref-returns了解更多信息。

最新更新