我有這個容器類:爲什麼只有在使用ref關鍵字時才能工作?
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,除了在後面的例子中,我只傳遞其成員變量,而不是整個容器。
http://stackoverflow.com/questions/635915/when-to-use-ref-and-when-it-is-not-necessary-in-c/635934#635934 –