제네릭 메소드는 어떠한 형식을 일반화한 메소드이다.
static void CopyArray(int[] source, int[] target)
{
for (int i=0; i<source.Length; i++)
{
target[i] = source[i];
}
}
static void CopyArray(string[] source, string[] target)
{
for (int i=0; i<source.Length; i++)
{
target[i] = source[i];
}
}
위의 두 메소드는 데이터 형식만 다르고 내용은 완전히 같다.
이를 일반화하면 다음과 같이 될 수 있다.
CopyArray의 제네릭 메소드
static void CopyArray<T> (T[] source, T[] target)
{
for (int i=0; i<source.Length; i++)
{
target[i] = source[i];
}
}
PrintArray의 제네릭 메소드
static void PrintArray<T> (T[] arr)
{
Array.ForEach(arr, (x) => {Console.Write("{0} ", x);});
Console.WriteLine();
}
비슷하게 PrintArray라는 Array의 원소를 출력하는 제네릭 메소드도 만들 수 있다.
테스트
static void Main()
{
int[] a = {1, 2, 3, 4, 5};
int[] b = new int[5];
CopyArray<int>(a, b);
PrintArray<int>(b);
string[] c = {"Com2us", "Smilegate", "Nexon"};
string[] d = new string[3];
CopyArray<string>(c, d);
PrintArray<string>(d);
}
1 2 3 4 5
Com2us Smilegate Nexon
참조
뇌를 자극하는 C# 5.0 프로그래밍, 박상현, 한빛미디어
'아카이빙 > C#' 카테고리의 다른 글
[C#] 제네릭의 형식 제약 (0) | 2018.06.21 |
---|---|
[C#] 제네릭 클래스 (0) | 2018.06.21 |
[C#] foreach 가능한 객체 만들기 (0) | 2018.06.20 |
[C#] 인덱서 (0) | 2018.06.20 |
[C#] System.Array (0) | 2018.06.20 |