[C#] Extension Method(확장 메서드)

JanMatny·2024년 10월 29일
0

C#

목록 보기
6/15
post-thumbnail

Extension Method(확장 메서드)

확장 메서드가 언제 사용되는가

1. 상속으로 기능 확장을 하기 어려운 경우

  • sealed : 해당 클래스를 상속할 수 없게 만든다.

2. 상속으로 기능을 확장하면 기존 코드의 수정이 필요하다.

  • 상속으로 기능을 확장하는 것보다 확장 메서드를 쓰는 것이 간편하다.
  • 상속을 통해 새로운 기능을 넣으려면 기존 코드를 많이 수정해야한다.

확장 메서드 사용법

확장 메서드를 사용하기 위해선 static의 개념이 필요하다.

static의 간단한 개념 설명은 아래에서 설명하겠다.


static의 개념

1. 정적 맴버

  • 정의 : 클래스의 모든 인스턴스가 공유하는 맴버이다, static으로 선언된 변수나 메서드는 클래스 자체에 속하고, 인스턴스를 생성하지 않아도 접근이 가능하다.
  • 용도 : 전역적인 상태를 관리하거나, 클래스 수준에서 공통된 기능을 제공할 때 사용한다.

2. 정적 변수 (Static Variable)

  • 설명 : 정적 변수는 클래스의 모든 인스턴스가 동일한 값을 공유하는 변수이다. 한번 초기화되면 프로그램이 종료될 때까지 메모리에 유지된다.
  • 예시 :

3. 정적 메서드 (Static Method)

  • 설명 : 정적 메서드는 클래스의 인스턴스와 무관하게 호출할 수 있는 메서드. 일반적으로 인스턴스 변수를 사용하지 않고 클래스 수준에서만 작업을 수행한다.
  • 예시 :

4. 정적 클래스 (Static Class)

  • 설명 : 정적 클래스는 인스턴스를 만들 수 없는 클래스이다. 모든 맴버는 정적(Static)이여야 하며, 보통 유틸리티 메서드를 포함하는데 사용된다.
  • 예시 :

요약

  • static 키워드는 클래스 맴버가 인스턴스가 아닌 클래스에 속함을 의미한다.
  • 정적 변수는 모든 인스턴스가 공유하며, 프로그램이 종료 시까지 유지된다.
  • 정적 메서드는 인스턴스 없이 호출할 수 있으며, 클래스 수준에서만 작업한다.
  • 정적 클래스는 인스턴스를 만들 수 없으며 모든 맴버가 정적(static)이다.

확정 메서드의 편리한 점

위 코드를 보면 알다시피 myTransform.position = Vector3.zero; 처럼 일일이 작성할 필요가 없고 위에 만들어놓은 ResetTransform() 확장 메서드를 사용하면 되서 편리하다.

그 외에도 확장 메서드를 통해서 자신이 자주 사용할 것 같은 기능을 확장 메서드로 개발하여 사용할 수 있기에 불필요한 코드를 줄일 수 있다.
또한 쉽고 간편하기에 쓸 수 있는 상황이 많다.

profile
코딩 공부용 벨로그

0개의 댓글