using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
// [형식 매개 변수 T(Type)]
// 이름이 같은 함수는 매개변수로 구분
// 불특정 타입의 매개변수를 받을 때 사용 (어떤 타입의 매개변수를 받을지 모를 때 사용)
// 클래스에다가 형식매개변수를 이용해보자
public class Abc<T>
{
public T var; // T 변수
public T[] array; // T 배열 변수
}
public class Test : MonoBehaviour
{
//void Print(int value)
//{
// print(value);
//}
//void Print(string value)
//{
// print(value);
//}
//void Print(float value)
//{
// print(value);
//}
//void Start()
//{
// print("abd"); // 출력값이 문자열이므로 2번째 print함수가 출력(string value를 매개 변수로 가지고 있으므로).
//}
// 형식 매개 변수를 이용하는 함수를 만들어보자.
//void Print<T>(T value) where T : class // 관례상 T를 씀. T를 받는 매개변수 vlaue만듦.
// // where를 사용하여, 사용할 수 있는 매개 변수 타입을 제한할 수 있다. (예시는 class만 사용하도록 허가함)
//{
// print(value);
//}
// 형식 매개 변수를 사용해보자
// 클래스에다가 형식매개변수를 이용해보자
Abc<string> a; // 이렇게 되면 위에서 선언한 Abc 클래스 안에 있는 모든 변수들은 string 타입이 되는 것.
Abc<float> b;
void Start()
{
// Print<string>("abc"); // 원하는 타입을(여기서는 string) 입력해주면 됨
// string은, void Print<T>의 'T'로 넘어감. 문자열을 출력하는 함수가 됨.
// Print<float>(4.5f);
a.var = "abc";
b.var = 4.5f;
a.array = new string[1]; // 크기가 1 되는 배열 생성
a.array[0] = "abc"; // a 변수배열 0번째 인덱스에 abc 값을 대입
b.array = new float[1];
b.array[0] = 4.5f;
}
}
카테고리 없음
댓글