Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# this 키워드 완벽 정리: 개념부터 실전 예제까지

C#의 this 키워드란?

C#에서 this 키워드는 클래스의 현재 인스턴스(객체)를 참조할 때 사용됩니다. 특히 메서드의 매개변수와 클래스 필드의 이름이 서로 같을 때, 이 둘을 구분하는 역할을 합니다.

또한 this 키워드는 같은 클래스 내에서 한 생성자가 다른 생성자를 호출할 때도 활용됩니다.

this 키워드의 주요 용도

  • 현재 객체 참조: 현재 실행 중인 인스턴스의 필드나 메서드에 접근할 수 있습니다.
  • 이름 충돌 해결: 매개변수와 필드의 이름이 동일할 경우, this.필드명으로 클래스 멤버임을 명확히 구분합니다.
  • 생성자 체이닝: this(...) 형태로 같은 클래스 내의 다른 생성자를 호출할 수 있습니다.

기본 사용 예시

다음은 학생(Student) 정보인 id, 이름(name), 나이(age), 과목(subject)을 저장하는 생성자입니다. 현재 클래스의 필드를 참조하기 위해 this 키워드를 사용했습니다.

public Student(int id, String name, int age, String subject) {
    this.id = id;
    this.name = name;
    this.subject = subject;
    this.age = age;
}

생성자의 매개변수 이름과 클래스 필드 이름이 동일하므로, this.id, this.name처럼 작성해야 필드에 값이 올바르게 할당됩니다. 만약 this를 생략하면 컴파일러는 이를 매개변수 자신에게 대입하는 것으로 해석하여 의도하지 않은 결과가 발생할 수 있습니다.

전체 예제 코드

아래 전체 예제를 통해 C#에서 this 키워드를 실제로 어떻게 활용하는지 확인해 보겠습니다.

using System.IO;
using System;

class Student {
    public int id, age;
    public String name, subject;

    public Student(int id, String name, int age, String subject) {
        this.id = id;
        this.name = name;
        this.subject = subject;
        this.age = age;
    }

    public void showInfo() {
        Console.WriteLine(id + " " + name + " " + age + " " + subject);
    }
}

class StudentDetails {
    public static void Main(string[] args) {
        Student std1 = new Student(001, "Jack", 23, "Maths");
        Student std2 = new Student(002, "Harry", 27, "Science");
        Student std3 = new Student(003, "Steve", 23, "Programming");
        Student std4 = new Student(004, "David", 27, "English");

        std1.showInfo();
        std2.showInfo();
        std3.showInfo();
        std4.showInfo();
    }
}

실행 결과

1 Jack 23 Maths
2 Harry 27 Science
3 Steve 23 Programming
4 David 27 English

정리

this 키워드는 C# 객체 지향 프로그래밍에서 현재 인스턴스를 명확하게 가리키는 핵심 요소입니다. 매개변수와 필드의 이름이 겹치는 상황에서 코드의 가독성과 안정성을 높여 주며, 생성자 간 호출을 통해 중복 코드를 줄이는 데에도 유용하게 활용됩니다.