C#의 제네릭
이 레슨에서는 타입 안전성을 유지하면서 여러 데이터 타입에 다시 쓸 수 있는 제네릭 클래스를 작성합니다.
소개
제네릭을 쓰면 아직 정해지지 않은 타입 T로 클래스나 메서드를 작성하고, 실제 타입은 사용할 때 고를 수 있습니다. 그래서 코드를 한 번만 작성해 int, string, 그 밖의 어떤 타입에도 쓸 수 있으며, 컴파일러는 여전히 타입을 완전히 확인합니다.
Box<T> 클래스는 T 타입의 값을 저장합니다. new Box<int>(42)를 만들면 T는 int가 되어 Value 속성도 int 타입이 되고, 문자열을 대입하려 하면 컴파일러가 즉시 오류를 알립니다. 같은 클래스를 다시 작성하지 않고 Box<string>이나 Box<double>로도 쓸 수 있습니다.
실행 가능한 C# 예제
C#
Program.cs
using System;
class Box<T>(T value) { public T Value { get; } = value; }
class Program
{
static void Main()
{
var box = new Box<int>(42);
Console.WriteLine(box.Value);
}
}
42디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
모든 챌린지