我是一名Java开发人员,Java采用的是传值调用方式,但我们可以在方法中更改对象的属性。我无法很好地解释这个问题,但这里有一个链接:如果Java是按值传递的,为什么我们可以在方法中更改对象的属性? 我也使用C#在Unity中开发游戏,我想知道上述情况是否也适用于C#语言。我尝试了一下,并且是有效的,和Java相同。在尝试时,我自己定义了一个类并尝试更改其属性。然后,我尝试了Vector3,但没有成功。
void Start()
{
Vector3 v = new Vector3(0,0,0);
setVector3(v);
Debug.Log(v);
}
void setVector3(Vector3 v)
{
v.x = 5;
}
虽然我们可以在C#中的方法中更改对象的属性,但为什么我无法更改Vector3的x属性(x属性可以像这样设置,这不是问题)?