제네릭 클래스와 제네릭 메서드
형식 매개변수 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