C# this 키워드

김현승·2024년 4월 27일
0

C#

목록 보기
9/13

C#에서 this 키워드는 클래스나 구조체의 현재 인스턴스를 참조하는 데 사용됩니다. this를 사용하면 클래스 내부에서 해당 인스턴스의 멤버 변수나 메소드에 접근할 수 있으며, 코드의 가독성을 높이고 현재 인스턴스의 컨텍스트에서 작업을 명확하게 수행할 수 있습니다.

this 키워드의 주요 용도

  1. 현재 인스턴스의 멤버에 접근: 클래스 내부의 메서드나 생성자에서 클래스의 필드, 프로퍼티, 다른 메서드에 접근할 때 this 키워드를 사용합니다. 특히 메서드의 매개변수 이름과 클래스의 필드 이름이 같을 때, 필드와 매개변수를 구분하기 위해 this를 사용할 수 있습니다.

예시:

public class Person
{
    private string name;
    private int age;

    public Person(string name, int age)
    {
        this.name = name; // this로 필드와 매개변수 구분
        this.age = age;
    }

    public void PrintInfo()
    {
        Console.WriteLine($"Name: {this.name}, Age: {this.age}");
    }
}
  1. 생성자 오버로딩: this 키워드를 사용하여 같은 클래스 내의 다른 생성자를 호출할 수 있습니다. 이를 통해 코드 중복을 줄이고, 여러 생성자에서 공통적인 초기화 로직을 한 곳에 모을 수 있습니다.

예시:

public class Rectangle
{
    private double width;
    private double height;

    public Rectangle(double side)
        : this(side, side) // 정사각형은 두 변의 길이가 같으므로, 하나의 변으로 다른 생성자 호출
    {
    }

    public Rectangle(double width, double height)
    {
        this.width = width;
        this.height = height;
    }
}
  1. 메서드 체이닝(Method Chaining): this를 반환함으로써, 클래스의 인스턴스 메서드들을 연속적으로 호출할 수 있습니다. 이 방식은 빌더 패턴(Builder Pattern)에서 자주 사용됩니다.

예시:

public class Builder
{
    private string data;

    public Builder SetData(string data)
    {
        this.data = data;
        return this; // this를 반환하여 메서드 체이닝 가능
    }

    public Builder AppendData(string extraData)
    {
        this.data += extraData;
        return this;
    }

    public void Build()
    {
        Console.WriteLine(this.data);
    }
}

// 사용 예:
Builder builder = new Builder();
builder.SetData("Initial data").AppendData(" and more data").Build();

this의 주요 특징

  • this는 인스턴스 메소드나 속성 내부에서 현재 객체를 참조합니다. 정적 메소드에서는 this를 사용할 수 없습니다.
  • this는 객체 지향 프로그래밍에서 객체의 인스턴스를 명확하게 가리키는 역할을 하며, 다른 객체와의 구분을 명확히 합니다.
  • this를 사용하여 객체 내에서 다른 메소드나 생성자, 속성에 접근함으로써 객체의 상태를 변경하거나 정보를 얻을 수 있습니다.

0개의 댓글