본문 바로가기

프로그래밍/기본기ㆍ자료구조

Generic (제네릭)

728x90
반응형

개념

- 사전적 의미로는 '포괄적인, 총칭의' 라는 뜻.

- 클래스나 메소드 등을 일반화하여 사용하는 것

- <T>라는 키워드를 사용한다.

- where 키워드로 제한을 줄 수 있다.

사용 목적

- 자료형을 정하지 않고 여러가지 타입을 한번에 사용하기 위해 사용된다.

사용 예시

public class GTestClass <T>

{

private T data; // T로 자료형을 일반화시킨다.

public T GetData() { return data; }

public void SetData(T data) { this.data = data; }

// 자료형이 제네릭이기 때문에 int가 될 수도 있고 string이 될 수도 있다.

}

GTestClass<int> gInt = new GTestClass<int>();

gInt.SetData(10);

System.Console.WriteLine( string.Format("{0}", gInt.GetData()) );

GTestClass<string> gString = new GTestClass<string>();

gString.SetData("문자열");

System.Console.WriteLine( string.Format("{0}", gString.GetData()) );

결과

10

"문자열"

위 코드 처럼 제네릭은 int, string 등 자료형을 하나로 한정하지 않고 사용할 수 있다.

만약 제네릭에 제한을 두고 싶다면 where 키워드를 사용하면 된다.

사용 예시

public class GTestClass2<T> where T : whereTestBaseClass

{

}

GTestClass2<int> gInt2 = new GTestClass2<int>();

// 위 gInt2에서 <int>는 where T : 로 선언한 whereTestBaseClass를 포함하고 있지 않기 때문에 에러가 발생

GTestClass2<whereTestClass> whereTest = new GTestClass2<whereTestClass>();

// 위와 같이 <whereTestClass>는 where T : 로 선언한 whereTestBaseClass를 포함하고 있기 때문에 정상 작동이 된다.

참고 출처

 

다람쥐와 포동포동이

 

RememberCook 9월 28일 정식 출시!

두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관��

chipmunk-plump-plump.tistory.com

반응형

'프로그래밍 > 기본기ㆍ자료구조' 카테고리의 다른 글

람다식  (3) 2020.05.15
Dictionary (딕셔너리)  (0) 2020.05.14
Clean Code (클린코드)  (5) 2020.05.03
BackBuffer (백버퍼)  (5) 2020.05.01
Property Indexer (프로퍼티 인덱서)  (5) 2020.04.30