나는이 컨테이너 클래스가 있습니다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 –