이번 포스팅에서는 this키워드, this() 생성자에 대해 알아보겠습니다.
1. this 키워드
클래스 외부에서 클래스 내부에 있는 멤버변수에 접근하려면 아래와 같이 객체명.멤버면수명으로 접근을 합니다.
그렇다면 클래스내 메소드(함수)에서 클래스 멤버변수값을 사용하려면 어떻게 할까요?
이때 사용하는 것이 this입니다.
this를 생성자 함수에서 이용하는 예시를 보여드리겠습니다.(생성자 함수를 모르시는분은 해당 포스팅 참조)
Person p1 = new Person("david");
class Person
{
public string name;
public Person(string name)
{
this.name = name;
Console.WriteLine($"제이름은 {this.name}입니다.");
}
}
//output: 제이름은 david입니다.
같은 컬러의 사각형들이 서로 같은 부분을 의미합니다.
객체를 생성할때 넘긴 인자가 객체의 멤버 변수의 값으로 할당되는 코드입니다.
(즉 this가 기존에 객체명이었던 p1을 대체한것입니다.)
뿐만 아니라 위와 같이 매개변수에 사용된 변수명과, 클래스 멤버변수명이 같을 경우 코드 가독성이 떨어지는데 이러한 문제도 this가 해결해줍니다.
2. this() 생성자 개념
아래 코드는 여러개의 생성자 함수가 있는 케이스입니다.
혹시 코드가 굉장히 비효율적으로 반복되고 있다는 느낌이 드시지 않나요?
클래스에선 이러한 반복을 제거하기 위해 상속이라는 개념을 이용하는데요.
생성자 함수간에도 마치 상속처럼 사용이 가능합니다.
사용법은 해당 함수 옆에 콜론(:)을 붙히고 아래와 같이 this(매개변수) 형태로 적어주면 됩니다.
이름은 모두 this로 같지만 매개변수 구성을 보면 각각 어느 함수를 가리키는지 직감적으로 아실 수 있을 겁니다.
정리
this() 생성자를 통해 기존에 반복되던 비효율적 코드를 줄이고, 더욱 원할한 코드 유지 보수가 가능해집니다.
'c#' 카테고리의 다른 글
[c# 기초] partial을 쓰는 이유? (0) | 2022.05.06 |
---|---|
[c# 기초] c# 접근 제한자(Access modifier) / private, protected, public (0) | 2022.05.06 |
[c# 기초] 다른 프로젝트에 있는 클래스 함수 사용하는법 완벽 정리 (0) | 2022.05.04 |
[c# 기초] 작업중인 파일이 자동적으로 실행되게 하는 방법(Ctrl+ F5) (0) | 2022.05.04 |
[c# 기초] 생성자(constructor)란? (0) | 2022.05.03 |
댓글