제네릭

조성원·2025년 4월 30일

😀제네릭

  • 타입을 나중에 지정할 수 있게 만듦 => 다양한 자료형 다룰 수 있음
  • var와 비슷한 역할

📗 제네릭 메소드

//메소드명<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();

예시

  • 제네릭 클래스로 클래스 자료형 리스트 형태를 만듦

  1. List<int> intList <= 리스트처럼 보이지만 List<T> 클래스를 인스턴스로 만든 거임. (원시적인 리스트 형태임)

  2. int로 정해진 Add 메서드에 1 반환

  3. elements의 [0] 배열에 1이 들어가고 count 변수 = 1이 됨

  4. Add에 2 반환, elements의 [1] 배열에 2, count = 2

  5. intList.Get(0) -> Get 메서드에 0 반환

  6. element[0]에 있는 1이 메서드에 반환되고 콘솔 출력

  7. List 클래스가 string으로 지정되고 똑같이 동작, Hello 출력

여러 메서드에서 다양한 자료형에 대응해야 할 때 사용할 수 있다

profile
direction *= -1;

0개의 댓글