1. 지역 변수(Local Variable)
정의: 지역 변수는 특정 블록(예: 메서드, 루프, 조건문 등) 내에서 선언되고,
그 블록 내에서만 사용 가능한 변수입니다. 블록이 끝나면 변수는 메모리에서 해제됩니다.
특징:
선언된 블록 내부에서만 접근할 수 있습니다.
블록이 종료되면 변수는 더 이상 사용할 수 없습니다.
지역 변수는 메모리에서 자동으로 관리되므로, 블록이 끝나면 자동으로 해제됩니다.
예시
2. 전역 변수(Global Variable)
정의: 전역 변수는 클래스 수준에서 선언된 변수로, 해당 클래스 내의 모든 메서드에서 접근할 수 있습니다.
C#에서는 보통 필드(Field)라고 불리며, 클래스 인스턴스에 속한 변수입니다.
특징:
클래스의 모든 메서드에서 접근할 수 있습니다.
객체가 살아있는 동안 메모리에 존재합니다.
클래스의 인스턴스에 귀속되므로, 인스턴스별로 다른 값을 가질 수 있습니다. static 키워드를 사용하면 모든 인스턴스에서 동일한 값을 공유할 수 있습니다.
예시
지역 변수와 전역 변수의 차이점 및 사용 시점
스코프(Scope, 범위)
지역 변수: 변수의 사용 범위가 선언된 블록 내로 제한됩니다. 메모리 사용이 효율적이며,
외부에서 접근할 수 없어 더 안전합니다.
전역 변수: 클래스 전체에서 사용 가능합니다. 객체 간 상태를 공유하거나 메서드 간 데이터를 전달할 때 유용합니다.
수명(Lifetime)
지역 변수: 선언된 블록이 종료되면 변수의 수명도 종료됩니다.
전역 변수: 객체가 살아있는 동안 변수도 메모리에 존재합니다.
사용 시기
지역 변수: 특정 작업에만 필요한 데이터를 저장할 때 사용합니다. 다른 메서드나 블록에서 이 데이터를 사용할 필요가 없을 때 적합합니다.
전역 변수: 여러 메서드에서 공통적으로 접근해야 하는 데이터를 저장할 때 사용합니다. 예를 들어, 클래스의 상태를 유지하거나 여러 메서드가 공유해야 하는 설정 값 등을 저장할 때 유용합니다.
실제 사용 예시
이 예제에서 balance는 전역 변수로, BankAccount 클래스의 모든 메서드에서 접근할 수 있습니.
Deposit, Withdraw, PrintBalance 메서드는 모두 balance를 사용하여 계좌의 잔액을 관리합니다.
이와 대조적으로,
각 메서드 내의 매개변수 amount는 지역 변수로, 해당 메서드에서만 사용됩니다.
'C# 기초 배워보기' 카테고리의 다른 글
C# Enum! (0) | 2024.08.12 |
---|---|
C# 람다식! (0) | 2024.08.12 |
C# 재귀함수를 이해해보자! (0) | 2024.08.08 |
C# 오버로딩, 오버라이딩! (0) | 2024.08.08 |
C# Function(함수)! (0) | 2024.08.08 |