# 제네릭 클래스
제네릭을 통해 어떤 타입도 받아들일 수 있는
클래스, 메서드 등을 만들 수 있다.
using System;
namespace ConsoleApp8
{
class Program
{
static void Main(string[] args)
{
Calc<int> program = new Calc<int>(50);
Console.WriteLine(program.value);
Calc<string> program1 = new Calc<string>("hello C#");
Console.WriteLine(program1.value);
Calc<double> program2 = new Calc<double>(1.5);
Console.WriteLine(program2.value);
Console.ReadLine();
}
}
class Calc<T> // 제네릭 클래스
{
public T value;
public Calc(T value)
{
this.value = value;
}
}
class Calc1<T> where T : struct // T는 값 타입
{ }
class Calc2<T> where T : class // T는 참조 타입
{ }
class Calc3<T> where T : Program // T는 Program 클래스의 파생 클래스여야한다.
{ }
class Calc4<T> where T : ICloneable // T는 ICloneable 인터페이스를 구현하는 타입이어야한다.
{ }
}