Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#中将两个结构类型变量链接在一起?_C#_Struct - Fatal编程技术网

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

如何在c#中将两个结构类型变量链接在一起?,c#,struct,C#,Struct,我的问题很简单;如何将两个结构链接在一起,以便在c#中修改一个结构可以更改另一个结构?由于结构的性质,这可能吗 在代码中,我正试图实现以下目标: vector2a=新的Vector2(0.5f,0.7f); 向量2 b=a;//这条线路需要更换 b、 X=1.0f; Debug.WriteLine(a.X);//应打印1.0f,但实际打印0.5f。 在上下文中,我正在用MonoGame制作一个游戏,需要将精灵的位置链接在一起,这自然会使用内置的数据类型“Vector2”,这是一个结构。结构是值

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

在代码中,我正试图实现以下目标:

vector2a=新的Vector2(0.5f,0.7f);
向量2 b=a;//这条线路需要更换
b、 X=1.0f;
Debug.WriteLine(a.X);//应打印1.0f,但实际打印0.5f。

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

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

:

var a=newvaluetuple(“foo”,1);
参考变量b=参考变量a;
b、 项目2=2;
控制台写入线(a);

有关更多信息,请参见。

您可以将另一个C的
ref
设为一个
struct
是值类型,因此这不起作用:或者,使用诸如class之类的引用类型,而不是诸如struct之类的值类型(如果需要,还可以使用公共集访问器)。这是对我当前措辞的问题的一个很好的回答(将
Vector2 b=a
替换为
ref var b=ref a
使代码打印1),虽然我含糊地提到我使用字段来存储数据,所以ref locals在我的情况下不起作用。但是,还有其他一些问题是关于询问ref字段的人的,所以我将按原样接受答案。@ZachK您应该编辑您的问题,以匹配您已接受的答案-根据问题目前的情况,这不能作为问题的答案“将精灵的位置链接在一起”。这很公平,尽管我不认为我应该按原样编辑我的问题。