2016-07-12 3 views
0

값으로 호출과 참조로 호출 간의 차이점을 이해하려고했습니다. 누군가가 참조로 실제 메모리 위치 값을 변경하는 반면, 값으로 호출하면 인스턴스 (가상 값)가 변경되지만 실제 값은 변경되지 않는다고 설명했습니다. 그래서 저는 그 프로그램이 어떻게 가치에 의해 참조 작업을하는지 확인하려고했습니다. 내 프로그램이 작동하지 않습니다. 논리를 올바르게 구현하고 있습니까?전달 값과 참조의 차이점

다음은 해결 된 코드와 수정 된 코드입니다.

static void Main(string[] args) 
    { 
     Program pro = new Program(); 
     int i = 1; 

     Console.WriteLine("Call By Value: "); 
     pro.byVal(i); 
     Console.WriteLine(i); 
     Console.ReadKey(); 

     Console.WriteLine("\n\n\nCall By Reference: "); 
     pro.byRef(ref i); 
     Console.WriteLine(i); 
     Console.ReadKey(); 
    } 

    public void byVal(int i)   //******* Call by Value *******// 
    { 
     i = 2; 
    } 
    public void byRef(ref int i)  //******* Call by Refrence *******//  
    { 
     i = 3; 
    } 
+0

이 코드는 실제로 컴파일됩니까? –

+0

"내 프로그램이 작동하지 않습니다"라는 의미는 무엇입니까? 달성하고자하는 것은 무엇입니까? 이 문서를 참조하십시오 : https://msdn.microsoft.com/en-us/library/0f66670z.aspx –

+0

그렇습니다. @MongZhu – smnizamani

답변

2

당신은 당신이 참조하여 호출 할 경우

byRef(ref i); 

에 전화

byRef(i); 

을 변경해야합니다.

+0

샤프한 눈 ... – Rahul

+0

문제를 해결했습니다! 고맙습니다 :) – smnizamani