더북(TheBook)

제네릭 클래스와 제네릭 메서드

형식 매개변수 T는 클래스에 사용할 수 있으며 마찬가지로 필드, 속성, 메서드의 매개변수 형식 또는 반환 형식에 사용할 수도 있습니다. 제네릭 클래스에서 제네릭 멤버를 함께 사용하는 예제를 살펴보겠습니다. 프로젝트 기반 소스는 GenericMethod.cs 파일에서 살펴볼 수 있습니다.

 

1.   제네릭 클래스를 만들고 제네릭 멤버를 추가합니다.

> //① 제네릭 클래스 설계
> public class Hello<T>
. {
.     private T _message;                                  //필드
.     public Hello() { _message = default(T); }            //기본 생성자
.     public Hello(T message) { this._message = message; } //매개변수가 있는 생성자
.     public void Say(T message) =>
.         Console.WriteLine("{0}", message);               //제네릭 메서드
.     public T GetMessage() => this._message;              //일반 메서드
. }

2.   Hello 클래스의 기본 인스턴스를 생성한 후 GetMessage() 메서드를 출력하면 기본 생성자로 넘겨준 T의 기본값이 출력됩니다.

> (new Hello<string>()).GetMessage()
null
> (new Hello<int>()).GetMessage()
0
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.