본문 바로가기

C# 프로그래밍/문법 개념

[C#] 제네릭 및 형식 제약 조건 (Generic & new, where)

반응형

제네릭 형식 제약 조건 키워드란?

클래스를 제네릭으로 만들 때 특정 형식을 따르도록 강제할 수 있는 기능이다.

 

그전에 우리는 제네릭이 무엇인지에 대해 먼저 알아야 한다.


제네릭(일반화)이란 무엇일까?

MSDN에 의하면 기본적인 의미는 다음과 같다.

제네릭은 .NET에 형식 매개 변수의 개념을 도입하여 클래스 또는 메서드가 클라이언트 코드에 의해 선언되고 인스턴스화될 때까지 하나 이상의 형식의 사양을 연기하는 클래스 및 메서드를 디자인할 수 있도록 합니다. 예를 들어 제네릭 형식 매개 변수 T를 사용하여 여기에 표시된 것처럼, 다른 클라이언트 코드에서 런타임 캐스팅 또는 boxing 작업에 대한 비용이나 위험을 발생하지 않고 사용할 수 있는 단일 클래스를 작성할 수 있습니다. 

제네릭 형식 매개변수를 사용하면 특정 형식 사용을 강제하기 때문에 안정성을 높일 수 있다. 또한 박싱과 언박싱이 발생하지 않기 때문에 성능면에서 이점을 가질 수 있다.

 

우리는 System.Collection의 ArrayList 대신 List<T>를, HashTable대신 Dictionary<TKey, TValue> 등을 사용하여 손쉽게 제네릭을 사용할 수 있다.

 

그렇다면 제네릭에 형식 제약 조건은 왜 다는 것일까. 


형식 제약 조건에는 어떠한 것들이 있을까?

제약 조건 키워드에는 new와 where 두 가지가 있다. 

 

반응형