TIL/C#

[C#] 제네릭

Sh_Blog 2023. 11. 2. 15:02

1. 제네릭이란?

제네릭은 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 기술을 말합니다.

그렇기 때문에 제네릭은 클래스, 구조체, 인터페이스 및 메서드의 형식 매개 변수에 사용자가

원하는 타입을 지정해줘야 하고 원하는 형식을 매개 변수처럼 넘겨줘야합니다.

 

2. 제네릭의 장점

2 - 1. 제네릭의 큰 장점은 형식 안전성입니다. 

object 타입에 비해 제네릭은 형식을 엄격하게 검사하기 때문에 컴파일러에서 형식 안정성을

보장해야 하는 부담이 없어집니다. 이러한 이유로 데이터 형식 테스트를 할 필요 없고

형식 캐스팅의 필요성과 런타임 오류 발생 가능성도 감소합니다.

 

2 - 2. 제네릭은 클래스, 구조체, 인터페이스 및 메서드를 원하는 타입으로 지정 후 사용할 수 있기

때문에 코드의 재사용성이 높습니다. 코드는 독립적이고 재사용성이 높을 경우 좋은 코드입니다.

 

2 - 3. 제네릭은 런타임 때 형식이 결정되는 것이 아니라 미리 타입을 지정해놓고 실행할 때 데이터 형식이

결정되기 때문에 성능 저하가 없습니다. 그렇기 때문에 성능이 굉장히 좋은 기능입니다.

 

3. 제네릭의 사용

제네릭은 클래스, 구조체, 인터페이스 및 메서드 등으로 정의하여 사용합니다.

제네릭 정의

 

Generic이란 이름으로 정의한 클래스를 사용하는 부분입니다.

제네릭 사용

 

Generic클래스를 사용자가 원하는 타입으로 변경하여 사용할 수 있습니다.

위 사진에서는 Generic클래스를 string 타입으로 g라는 객체를 만들어서

Generic클래스의 변수인 Field에 접근하여 "A string" 이라는 값을 넣고 있습니다.

 

 

요약

제네릭은 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는

기술입니다. 그렇기 때문에 이 기술을 사용하면 코드의 재사용성이 굉장히 높아지고

타입을 따로 체크하고 변환해줄 필요가 없기 때문에 관리하기가 수월해집니다.

또한 제네릭은 형식 안정성이 뛰어나 잘못된 타입으로 인한 오류를 컴파일 단계에서

방지할 수 있습니다.