C#

제너릭

잼잼재미 2023. 11. 8. 16:32

● 제너릭
 - 클래스나 메서드를 일반화시켜 다양한 자료형에 대응할 수 있는 기능
 - 코드의 재사용성을 높일 수 있음
 - <T> 형태의 키워드를 이용

● 예시

// 제너릭 클래스 선언 예시
class Stack<T>
{
    private T[] elements;
    private int top;

    public Stack()
    {
        elements = new T[100];
        top = 0;
    }

    public void Push(T item)
    {
        elements[top++] = item;
    }

    public T Pop()
    {
        return elements[--top];
    }
}

// 제너릭 클래스 사용 예시
Stack<int> intStack = new Stack<int>();
intStack.Push(1);
intStack.Push(2);
intStack.Push(3);
Console.WriteLine(intStack.Pop()); // 출력 결과: 3

 * 컬렉션 Stack 구현

 * Statc<int>에 int 대신 다른 자료형도 사용 가능

 

※ 제너릭을 두개 이상 사용하는 예

class Pair<T1, T2>
{
    public T1 First { get; set; }
    public T2 Second { get; set; }

    public Pair(T1 first, T2 second)
    {
        First = first;
        Second = second;
    }

    public void Display()
    {
        Console.WriteLine($"First: {First}, Second: {Second}");
    }
}

Pair<int, string> pair1 = new Pair<int, string>(1, "One");
pair1.Display();

Pair<double, bool> pair2 = new Pair<double, bool>(3.14, true);
pair2.Display();

// 출력
First: 1, Second: One
First: 3.14, Second: True

 * 컬렉션  Dictionary 구현

'C#' 카테고리의 다른 글

인터페이스(Interface)  (0) 2023.11.09
out, ref 키워드  (0) 2023.11.08
오버로딩(overloading)과 오버라이딩(overriding)  (0) 2023.11.08
가상 메서드 (Virtual), 추상 메서드(Abstract)  (2) 2023.11.08
프로퍼티 (Property)  (0) 2023.11.08