//메소드명<T>(매개변수)
public void MyGeneric<T>(T myType) {...}


//제네릭 메서드 + where T : 제약조건
void MyGeneric<T>(T myType) where T : IComparable<T>

// 클래스<T>
public class MyGeneric<T>
{
public T generic;
}
// 객체로 만들 때
MyGeneric<int> myGeneric = new();

List<int> intList <= 리스트처럼 보이지만 List<T> 클래스를 인스턴스로 만든 거임. (원시적인 리스트 형태임)
int로 정해진 Add 메서드에 1 반환
elements의 [0] 배열에 1이 들어가고 count 변수 = 1이 됨
Add에 2 반환, elements의 [1] 배열에 2, count = 2
intList.Get(0) -> Get 메서드에 0 반환
element[0]에 있는 1이 메서드에 반환되고 콘솔 출력
List 클래스가 string으로 지정되고 똑같이 동작, Hello 출력
여러 메서드에서 다양한 자료형에 대응해야 할 때 사용할 수 있다