static class Helper
{
public static void Swap<T>(ref T lhs, ref T rhs)
{
T temp = lhs;
lhs = rhs;
rhs = temp;
}
}
: C#이 제공하는 일반화 프로그래밍 방식
1) 타입 매개변수 (파라미터)이자 위치지정자(Placeholder)
2) 명명법
3) 클래스, 인터페이스, 대리자, 메소드만 타입 파라미터를 받을 수 있습니다.
4) 사용 시 실제 타입을 명시합니다.
static class Helper
{
public static void Swap<T>(ref T lhs, ref T rhs)
{
T temp = lhs;
lhs = rhs;
rhs = temp;
}
}
class Program
{
static void Main()
{
int a = 10, b = 20;
Helper.Swap<int>(ref a, ref b);
Helper.Swap(ref a, ref b); // 모두 가능
}
}
1) T에는 어떤 타입이라도 들어갈 수 있지만, 아무 타입이나 전달되지 못하도록 제약을 걸수도 있습니다.
2) where T:new() 의 예제