我有这个容器类:
class Fruit
{
public Apple apple;
public Banana banana;
}
我在另一个类中有一个函数,如下所示:
public void ChangeFruit(Fruit fruit)
{
fruit.apple = memberApple;
fruit.banana = memberBanana;
}
这很好用。
但是,我想知道为什么这不起作用:
如果我将 ChangeFruit 方法更改为不使用容器,而是使用实际的水果类,如下所示:
public void ChangeFruit(Apple apple, Banana banana)
{
apple = memberApple;
banana = memberBanana;
}
然后这不起作用,除非 ref 关键字与每个参数一起传递。为什么我需要 ref 关键字在这里而不是那里?
顺便说一句,在调用后者的ChangeFruit时,我是这样称呼的:
ChangeFruit(myFruit.apple, myFruit.banana);
相对于ChangeFruit(myFruit);
我只想知道在传递容器类时我不需要 ref 关键字,但是当我单独传递每个水果时我需要。无论哪种方式,我都在传递 myFruit,除了在后一个示例中,我只是单独传递其成员变量而不是整个容器。