블로그 이미지
다비도프

만나고, 고백하고, 가슴 떨리고, 설레이고, 웃고, 사랑하고, 키스하고, 함께하고..

Rss feed Tistory
WEB/ASP.NET With C# 2007. 3. 26. 17:16

[Generics] 닷넷 프레임워크 2.0과 Visual Studio 2005 : C# 2.0 - Generics

[Generics]

컬렉션의 형태로 데이터를 저장함에 있어 데이터의 타입을 매개변수로 전송받아 데이터를 저장하는 방식이다.
Generics의 형태로 사용자 정의 클래스를 선언하기 위해서는

using System.Collections.Generics
public
class MyStack<T>

같은 형태로 MyStack이라는 컬렉션 클래스를 선언하는데
MyStack 클래스 개체를 통해 저장하는 데이터 타입을 매개변수로 선언한다.
<>표현은 generics의 형태로 클래스를 선언하는데 T를 타입변수로 선언하여
T위치에는 런타임시에 데이터 타입이 결정되도록 한다.

MyStack<int> ms = new MyStack<int>();


++ 컬렉션은 예전에도 있었잖아?
어셈블리시에 예전엔 나오는 족족 컨버팅을 해줘서 열라 느렸는데 Generics은 컨버팅이 발생되지 않는댄다.

++ Generics은 구조체에도 적용할 수 있다.

struct Point<T>
{
    public T x;
    public T y;
}

Point<int> p;
p.x = 10;
p.y = 20;


++ T로 선언한 형식이 처리할 수 있는 데이터가 아닐 때는?
제약조건을 걸어줘야지. -_-

public class MyList<T> where T : IComparable
{
    public void Add(T item)
    {
        if(T.CompareTo(x) < 0){...}
    }
}
,
TOTAL TODAY