int num1 = 31;
object obj = num1;
int num2 = (int)obj;
메소드 정의 시 : public void Attack<T>(T target)
메소드 호출 시 : Attack<Slime>(slime);
클래스 선언 시 클래스 이름 뒤의 <>사이에 T 정의
클래스 내부에 T 형식으로 사용할 변수, 반환 값 등을 설정
클래스 객체 생성 시 T 대신 사용할 데이터 형식 입력하면 클래스 내부의 모든 T가 해당 데이터 형식으로 변경됨.
public class Player<T>
{
public T value;
}
public class GenericClass
{
private void Awake()
{
Player<int> player1 = new Player<int>();
player1.value = 10;
Player<string> player2 = new Player<string>();
player1.value = "Hello";
}
}
public void Method<T>(T value) where T : struct {...}
public class Class<T> where T : class {...}
출처 : 고박사의 유니티 노트 - 일반화 프로그래밍 (링크)