728x90
안녕하세요!
이번 글에서는 C#의 Call by Value와 Call by Reference에 대해 알아보겠습니다.
매개변수 전달 방식인 Call by Value와 Call by Reference는 메서드의 동작방식과 프로그램의 구조를 결정하는 중요한 요소입니다.
Call by Value
- Call by Value는 메서드 호출 시 인자로 전달된 변수의 값만을 복사하여 전달하는 방식입니다.
- 즉, 메서드 내에서 매개변수의 값이 변경되더라도 호출한 쪽의 변수 값은 영향을 받지 않습니다.
public class Program
{
public static void ChangeValue(int num)
{
num = 10;
}
public static void Main()
{
int number = 5;
Console.WriteLine("Before Change: " + number);
ChangeValue(number);
Console.WriteLine("After Change: " + number);
}
}
- ChangeValue 메서드는 int 형식의 매개변수를 받아서 값을 10으로 변경하는 역할을 합니다.
- Main 메서드에서 ChangeValue를 호출하고 난 후에도 number 변수의 값은 변하지 않습니다.
Call by Reference
- Call by Reference는 메서드 호출 시 매개변수 자료형 앞에 ref 키워드를 추가해 줌으로서 변수의 주소를 전달하여 메서드 내에서 변수의 값을 변경할 수 있게 하는 방식입니다.
- 따라서 메서드 내에서 매개변수의 값을 변경하면 호출한 쪽의 변수 값도 같이 변경됩니다.
public class Program
{
public static void ChangeValue(ref int num)
{
num = 10;
}
public static void Main()
{
int number = 5;
Console.WriteLine("Before Change: " + number);
ChangeValue(ref number);
Console.WriteLine("After Change: " + number);
}
}
- ChangeValue 메서드는 int 형식의 매개변수를 ref 키워드를 사용하여 전달받습니다.
- 따라서 Main 메서드에서 ChangeValue를 호출하고 난 후에 number 변수의 값이 10으로 변경됩니다.
요약
- Call by Value는 메서드 호출 시 인자의 값을 복사하여 전달하는 방식으로, 호출한 쪽의 변수에는 영향을 주지 않습니다.
- Call by Reference는 메서드 호출 시 변수의 주소를 전달하여 변수의 값을 직접 변경하는 방식으로, 호출한 쪽의 변수도 함께 변경됩니다.
이번 글에서는 C#에서의 Call by Value와 Call by Reference예제를 통해 각각의 특성을 알아보았습니다.
응용프로그램 특성에 맞는 적절한 매개변수 전달 방식을 선택하여 프로그래밍을 진행하는데 도움이 되시길 바랍니다.
감사합니다!
728x90
'[C#] > 프로그래밍 기초' 카테고리의 다른 글
[C#] 프로그래밍 기초 : 람다식(=>) (18) | 2023.09.07 |
---|---|
[C#] 프로그래밍 기초 : 로깅(Logging) (35) | 2023.08.08 |
[C#] 프로그래밍 기초 : foreach (20) | 2023.08.01 |
[C#] 프로그래밍 기초 : 프로퍼티 (15) | 2023.07.31 |
[C#] 프로그래밍 기초 : 병렬제어 (18) | 2023.07.20 |