this ( 매개변수 키워드 )
this 는 매개변수 전달 방식이 아니라, 현재 인스턴스 ( 객체 자기 자신 ) 를 가리키는 키워드이다.
클래스나 구조체 내부에서 자기 자신의 필드 , 속성 , 메서드 , 인스턴스 를 가리킬 때 사용한다.
문법
class ClassName
{
private int value;
public ClassName(int value)
{
this.value = value; // 매개변수 value와 멤버 변수 value를 구분
}
public void Show()
{
Console.WriteLine(this.value); // 현재 객체의 value 출력
}
}
주의 사항
1. 정적 ( static ) 메세더에서는 사용 불가
- this 는 인스턴스 자신을 참조하므로, static 메서드 내부에서는 사용할 수 없다.
2. 이름 충돌 시 구분용
- 지역 변수 / 매개 변수 이름과 필드 이름이 같을 경우 , this 를 붙여 멤버임을 명확히 한다.
3. 메서드 체이닝 가능
- 메서드가 this 를 반환하면 체이닝 문법을 구현할 수 있다.
class Player
{
private string name;
private int hp;
public Player(string name, int hp)
{
this.name = name; // 매개변수와 필드 구분
this.hp = hp;
}
public Player Heal(int amount)
{
this.hp += amount;
return this; // 메서드 체이닝 가능
}
public void ShowStatus()
{
Console.WriteLine($"{this.name} : {this.hp} HP");
}
}
class Program
{
static void Main()
{
Player p1 = new Player("Knight", 100);
p1.Heal(20).Heal(10).ShowStatus();
// 출력: Knight : 130 HP
}
}
정리
현재 객체 자신을 가리키는 키워드이다.
멤버와 매개변수 구분 , 메서드 체이닝 , 인스턴스 참조에 사용한다.
'⭐C Sharp > 11. 객체 지향' 카테고리의 다른 글
| 추상 클래스 ( Abstract Class ) (0) | 2025.09.28 |
|---|---|
| 인터페이스 ( Interface ) (0) | 2025.09.28 |
| 클래스 ( Class ) (0) | 2025.09.22 |
| 메모리 구조 (0) | 2025.09.22 |
| 📌Static (0) | 2025.09.22 |