글
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>
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;
{
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){...}
}
}
{
public void Add(T item)
{
if(T.CompareTo(x) < 0){...}
}
}
RECENT COMMENT