오늘은 C#에서 중요한 역할을 차지하는 제네릭에 대해서 한번 공부해보자.
그럼 이러한 제네릭이란 과연 무엇일까!?
제네릭(Generic) 이란 클래스에 사용할 타입을 디자인할 때 지정하는 것이 아니라 클래스를 사용할 때 지정한 후 사용하는 기술을
말한다.
이게 무슨말이야!??!!?
public class a<T> // 앞서 여기서 <T>는 지정되지 않은 타입이라고 정의해준다. { private T data= default(T); public void setData(T data) { this.data = data; } public T getData() { return this.data; } } public class b { static void Main(string[] args) { string str="1234허미1234"; a<string> st = new a<string>();//여기에서 a라는 객체를 생성하는데 기존의 틀 T를 string으로 하겠다.
라는 의미. st.setData(str); } }
그런데 궂이 Object 타입이 있기 때문에 제네릭을 쓸 이유가 있을까 하기도 한다. ( 필자 생각으로는...부족하기때문ㅇ ㅔㅠ)
그러나 제네릭을 쓰는 이유가 따로있단다.!
그것은 바로....
1. 가장 중요한것은 형식 안정성 때문이다.
2. 캐스팅으로 인한 낭비를 하지 않아도 된다. 만약 object 타입으로 초기에 프로그래밍 해놓았다면 일일이 (string), (int)형으로
캐스팅 하여야 한다는 불편함이 존재한다.
3. 박싱과 언박싱으로 인한 부하가 없다.
따라서 이런 문제점들을 막기위해서 C#에도 제네릭이 등장하게 되었다.
'DEV_STUDY > C#' 카테고리의 다른 글
[C# 컬렉션] Colloection (0) | 2012.01.17 |
---|---|
[C# 객체지향] Delegate 대리자! (0) | 2012.01.10 |
[C# 객체지향] Boxing & Unboxing 박싱/언박싱 (0) | 2012.01.10 |
[C# 객체지향] 업캐스팅( 제 1 다형성 ) 가상함수 ( 제 2 다형성 ) (0) | 2012.01.05 |
[C# 객체지향] 인터페이스 (Interface) 란?! (0) | 2012.01.04 |