我是一名Java开发人员,Java是按值传递的,但我们在方法中更改对象的属性.我无法很好地解释,但这里有一个链接: If Java is pass-by-value, then why can we change the properties of objects in methods?个 我也在用C#开发Unity中的游戏.我想知道,在C#语言中,上述情况也可以适用.我试过了,是的,它是有效的,它是一样的.在try 的同时,我自己定义了一个类,并try 更改其属性.在那之后,我try 了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属性可以这样设置,这不是问题)?