제네릭 (Generic) 1
Generic Type
은 특정 클래스나 함수에서 여러가지 데이터타입을 인자값으로 받거나 리턴해줄때 사용한다.
기본적인 사용방법은 다음과 같다.
// T는 다른 임의의 값을 넣어도 상관없다.
public static class GenericSample
{
public static void Print(T _Value)
{
Console.WriteLine(_Value);
}
}
public class GenericSample2<T>
{
}
위와 같이 선언해준다음에 <T>
위치에 원하는 데이터 타입을 넣어준다.
아래와 같은 상황에서 쓰이면 유용하다.
public static class Sample
{
public static void Print(int _Value)
{
Console.WriteLine(_Value);
}
public static void Print(string _Value)
{
Console.WriteLine(_Value);
}
public static void Print(float _Value)
{
Console.WriteLine(_Value);
}
}
같은 함수인데 넣어주는 데이터타입마다 새로운 함수를 넣어주는것이 불편한데,
이때 아래와 같이 제네릭 타입으로 선언해주면 넣어주는 값에 따라서 데이터타입이 결정되게 된다.
public static class GenericSample
{
public static void Print(T _Value)
{
Console.WriteLine(_Value);
}
}
아래는 전체 내용
public static class Sample
{
public static void Print(int _Value)
{
Console.WriteLine(_Value);
}
public static void Print(string _Value)
{
Console.WriteLine(_Value);
}
public static void Print(float _Value)
{
Console.WriteLine(_Value);
}
}
public static class GenericSample
{
public static void Print(T _Value)
{
Console.WriteLine(_Value);
}
}
class Program
{
static void Main(string[] args)
{
// int는 사용가능
Sample.Print(1);
// double 형태시에 오류가 발생한다.
// double형을 사용하기 위해서는 Sample class에 overloading 해주어야한다.
Sample.Print(1.123);
// 하지만 Generic 타입으로 선언한 함수의 경우 데이터타입을 자유롭게 넣어줄수있다.
GenericSample.Print(1);
GenericSample.Print(1.123);
GenericSample.Print("test");
GenericSample.Print(1.2345f);
}
}
'C# > Basic' 카테고리의 다른 글
Directory, DirectoryInfo (0) | 2021.03.09 |
---|---|
File, FileInfo (0) | 2021.03.08 |
상속 (inheritance) (0) | 2021.02.25 |
접근 제한자 (Access Modifier) (0) | 2021.02.14 |
this (0) | 2021.02.13 |
댓글
이 글 공유하기
다른 글
-
Directory, DirectoryInfo
Directory, DirectoryInfo
2021.03.09 -
File, FileInfo
File, FileInfo
2021.03.08 -
상속 (inheritance)
상속 (inheritance)
2021.02.25 -
접근 제한자 (Access Modifier)
접근 제한자 (Access Modifier)
2021.02.14