본문 바로가기

워크/C# 2.0

제네릭 (Generics)

제네릭을 사용하는 기본적인 예제는 종종 콜렉션과 관련된 것들이 많이 보이지만, 조금 더 간단한 예제를 통해 제네릭의 기본적인 아이디어를 이해해보겠습니다.

제네릭을 활용한 간단한 Swap 함수:

Swap 함수는 두 개의 변수의 값을 바꾸는 함수입니다. 제네릭을 사용하면, 이 함수를 어떤 타입의 변수들에 대해서도 사용할 수 있습니다.

using System;

public class GenericExample
{
    // 제네릭 메서드 선언
    public static void Swap<T>(ref T a, ref T b)
    {
        T temp = a;
        a = b;
        b = temp;
    }

    public static void Main()
    {
        int x = 5, y = 10;
        Console.WriteLine($"Before Swap: x = {x}, y = {y}");
        Swap<int>(ref x, ref y);
        Console.WriteLine($"After Swap: x = {x}, y = {y}");

        string firstString = "Hello", secondString = "World";
        Console.WriteLine($"\nBefore Swap: firstString = {firstString}, secondString = {secondString}");
        Swap<string>(ref firstString, ref secondString);
        Console.WriteLine($"After Swap: firstString = {firstString}, secondString = {secondString}");
    }
}

이 코드를 실행하면 다음과 같은 결과가 출력됩니다:

Before Swap: x = 5, y = 10
After Swap: x = 10, y = 5

Before Swap: firstString = Hello, secondString = World
After Swap: firstString = World, secondString = Hello

위의 Swap<T> 메서드는 정수, 문자열 등 어떤 타입에 대해서도 작동하는데, 그 이유는 제네릭을 사용해서 정의되었기 때문입니다. 이를 통해 중복 코드를 줄이고 타입 안전성을 높일 수 있습니다.

'워크 > C# 2.0' 카테고리의 다른 글

고정 크기 버퍼 (Fixed Size Buffers)  (0) 2023.08.25
반복자 (Iterators)  (0) 2023.08.25
익명 메서드 (Anonymous Methods)  (0) 2023.08.25
Nullable 타입  (0) 2023.08.25
C# 2.0의 주요 특징  (0) 2023.08.25