1. 제네릭이란?
제네릭은 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 기술을 말합니다.
그렇기 때문에 제네릭은 클래스, 구조체, 인터페이스 및 메서드의 형식 매개 변수에 사용자가
원하는 타입을 지정해줘야 하고 원하는 형식을 매개 변수처럼 넘겨줘야합니다.
2. 제네릭의 장점
2 - 1. 제네릭의 큰 장점은 형식 안전성입니다.
object 타입에 비해 제네릭은 형식을 엄격하게 검사하기 때문에 컴파일러에서 형식 안정성을
보장해야 하는 부담이 없어집니다. 이러한 이유로 데이터 형식 테스트를 할 필요 없고
형식 캐스팅의 필요성과 런타임 오류 발생 가능성도 감소합니다.
2 - 2. 제네릭은 클래스, 구조체, 인터페이스 및 메서드를 원하는 타입으로 지정 후 사용할 수 있기
때문에 코드의 재사용성이 높습니다. 코드는 독립적이고 재사용성이 높을 경우 좋은 코드입니다.
2 - 3. 제네릭은 런타임 때 형식이 결정되는 것이 아니라 미리 타입을 지정해놓고 실행할 때 데이터 형식이
결정되기 때문에 성능 저하가 없습니다. 그렇기 때문에 성능이 굉장히 좋은 기능입니다.
3. 제네릭의 사용
제네릭은 클래스, 구조체, 인터페이스 및 메서드 등으로 정의하여 사용합니다.
Generic이란 이름으로 정의한 클래스를 사용하는 부분입니다.
Generic클래스를 사용자가 원하는 타입으로 변경하여 사용할 수 있습니다.
위 사진에서는 Generic클래스를 string 타입으로 g라는 객체를 만들어서
Generic클래스의 변수인 Field에 접근하여 "A string" 이라는 값을 넣고 있습니다.
요약
제네릭은 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는
기술입니다. 그렇기 때문에 이 기술을 사용하면 코드의 재사용성이 굉장히 높아지고
타입을 따로 체크하고 변환해줄 필요가 없기 때문에 관리하기가 수월해집니다.
또한 제네릭은 형식 안정성이 뛰어나 잘못된 타입으로 인한 오류를 컴파일 단계에서
방지할 수 있습니다.
'TIL > C#' 카테고리의 다른 글
[C#] Callback은 무엇인가? (0) | 2023.11.08 |
---|---|
[C#] 델리게이트 (0) | 2023.11.06 |
[C#] 배열, List, ArrayList, Dictionary의 차이점 (1) | 2023.11.02 |
[C#] 박싱과 언박싱 (0) | 2023.11.01 |
[C#] 가비지 컬렉션(Garbage Collection) (0) | 2023.10.31 |