반응형
1. Generic
제네릭 타입에서는 데이터 형식을 확정하지 않고 데이터 타입 자체를 Type Parameter로 정의한다. 일반적으로 <T>로 작성한다.
// Generic class -> T안에 어떤 타입을 넣어도 작동된다.
class MyList<T>
{
T[] arr = new T[10];
public T GetItem(int i)
{
return arr[i];
}
}
static void Test<T>(T input)
{
}
제네릭 타입을 사용할 때는 클래스명과 데이터 타입을 지정해주면서 사용하면 된다.
static void Main(string[] args)
{
Test<int>(3);
Test<float>(3.0f);
}
2. Generic Constraints
Where이란?
특정 조건에만 대응되는 데이터 타입이 필요한 경우 where키워들르 사용하여 제약 조건을 추가할 수 있다. 제약 조건이 만족하지 않을 경우 컴파일 에러가 발생한다.
단일 제약 조건
class GenericClass<T> Where T : class
{
public T objectPiggy{get;set;}
}
class Piggy
{
private string anme;
}
class Program
{
static void Main(string[] args)
{
GenericClass<Piggy> object = new GenericClass<Piggy>();
}
}
다중 제약 조건
class Example<T> where T : contraint1, constraint2
class MyClass<T, U>
where T : class
where U : struct
{ }
반응형
'유니티 공부 > C# 문법' 카테고리의 다른 글
C# 문법 - this 키워드 (0) | 2023.04.11 |
---|---|
C# 문법 - 생성자 (0) | 2023.04.11 |
C# 문법 - 스택과 힙 (0) | 2023.04.11 |
C# 문법 - 복사(값)와 참조 (0) | 2023.04.10 |
C# 문법 - Object(박싱과 언박싱) (0) | 2023.04.10 |
댓글