변수 범위(Scope)란 무엇인가?
변수의 범위(Scope)란 프로그램 코드 중에서 해당 변수에 접근할 수 있는 영역을 의미합니다. 즉, 변수가 어디에서 유효하고 어디에서 참조될 수 있는지를 결정하는 개념입니다.
C#에서 변수는 선언된 위치에 따라 크게 두 가지 수준으로 나눌 수 있습니다.
1. 메서드 레벨 (Method Level)
메서드 내부에 선언된 변수를 지역 변수(Local Variable)라고 합니다. 지역 변수는 해당 메서드 안에서만 접근할 수 있으며, 메서드의 실행이 끝나면 메모리에서 사라집니다.
2. 클래스 레벨 (Class Level)
클래스 내부에 선언된 변수는 클래스 멤버 변수(Field)가 됩니다. 멤버 변수는 클래스 전체에서 접근할 수 있어 여러 메서드 간에 데이터를 공유할 때 유용합니다.
예제 코드
아래 예제를 통해 변수 범위가 실제로 어떻게 동작하는지 확인해 보겠습니다.
using System;
namespace Demo {
class Program {
public int Divide(int num1, int num2) {
// 메서드 내부의 지역 변수
int result;
result = num1 / num2;
return result;
}
static void Main(string[] args) {
// Main 메서드의 지역 변수
int a = 150;
int b = 10;
int res;
Program p = new Program();
res = p.Divide(a, b);
Console.WriteLine("Division Result = {0}", res);
Console.ReadLine();
}
}
}실행 결과
Division Result = 15
코드 설명
위 예제에서 Divide 메서드 안에 선언된 result 변수와 Main 메서드 안에 선언된 a, b, res 변수는 모두 각각의 메서드 내부에서만 유효한 지역 변수입니다.
Main 메서드의 지역 변수 a와 b는 Divide 메서드에 매개변수로 전달되어 사용됩니다. 이처럼 서로 다른 메서드 간에 데이터를 주고받을 때는 매개변수를 활용하는 것이 일반적입니다.