2014. 12. 25. 23:35ㆍIT Books/시작하세요 C# 프로그래밍
<type> 으로 명시하며
지정한 타입은 JIT 컴파일 타임에 기계어 코드를 만들어준다.
제네릭 클래스는
public class GenericClass<T>
와 같은 형식.
제네릭 메서드는
public static void Method1<T> (T item)
{
}
처럼 지정하면 된다.
제네릭은 박싱/언박싱으로 발생하는 힙낭비를 막고 코드 중복도 해결해 준다.
제약 조건
이런 식의 제약 조건은
1. class Temp<T> where T : ICollection
2. class Temp<T> where T : ICollection, IConvertivle
3. class Temp<T,V> where T : ICollectio
where V : IComparable
이런 방식으로 지정할 수 있다.
또한 특별한 제약 조건이 있다.
where T : struct T형식 매개변수는 반드시 값 형식
where T : class T형식 매개변수는 반드시 참조 형식
where T : new() T형식 매개변수의 타입에는 반드시 매개변수 없는 기본 생성자가 포함되어 있어야만 한다.
where T : U T형식 매개변수는 반드시 U형식 인수에 해당하는 타입이거나 그것으로부터 상속받은 클래스만 가능.
--
where T : new() 조건은 T타입의 객체를 제네릭 메서드 / 클래스 내부에서 new 연산자를 통해 생성할 때 사용.
Base a = new Derive();
이 코드는 전형적인 다형성을 이용한 인스턴스 생성 방식 예제인데.
이렇게 제약조건을 걸어주면
제네릭으로 처리할 수 있다.
여기서 T는 Base, V는 Derive가 되며,
결과적으로 Derive로 할당하여 Base로 형변환해서 반환하는 역할이다.
'IT Books > 시작하세요 C# 프로그래밍' 카테고리의 다른 글
8장 - C# 3.0 - 1 (0) | 2015.01.06 |
---|---|
7장 - c#2.0 - 그외 (0) | 2014.12.28 |
6장 - 리플렉션2 (확장모듈 만들어보기) (0) | 2014.12.24 |
6장 - 리플렉션1 (1) | 2014.12.21 |
6장 - 쓰레드, 네트워크, 데이터베이스 (0) | 2014.12.21 |