brunch

You can make anything
by writing

C.S.Lewis

by 김은지 Feb 28. 2017

C# 제네릭, 언뜻보기에 복잡하지만 정말최강인...

제네릭은 은혜롭다

오늘은 C#의 제네릭이란 문법에 대해 소개해볼까 한다. 

제네릭 = Generic! 왠지 Generalize라는 단어가 떠오르지 않는가?

맞다! 그단어!!!

일반화하다 라는 뜻의 Generalize

제네릭은 진짜 그런 기능이다.


아묻따! 예제부터 보자.

간단한 배열 복사 함수를 하나 선언해보겠다.

void copy(int[] source, int[] target)

{

        for(int i=0; i < source.Length; i++) 

                target[i] = source[i];          

}


그럼 이제 double 형 배열에 대해서도 배열 복사 함수를 선언해보라고 한다.

오버로딩을 이용해 

void copy(double[] source, double[] target)

{

        for(int i=0; i < source.Length; i++) 

                target[i] = source[i];          

}

이렇게 할 수도 있지만 매번 이렇게 하기 힘드니...

형식을 T라고 일반화 한다.


그럼 이렇게 되는 것인가???

void copy(T[] source, T[] target)

{

        for(int i=0; i < source.Length; i++) 

                target[i] = source[i];          

}


Nope!!! 아직 아뉘야!!!!!
이러케하면 컴파일 할때 형식을 모르자냐@.@


void copy<T>(T[] source, T[] target)

{

        for(int i=0;i<source.Length;i++)

            target[i] = source[i];

}


일단 이렇게 써놓고, copy 메소드 사용시에 형식을 함께 넘겨주는 것이다!!!!

가령... int형 배열을 카피하고 싶으면

copy<int>(source, target) 이렇게 하면된다!!!

완전 멋진 문법 아닌가??? 와우내

작가의 이전글 윈10 Bash Shell 로 EC2 인스턴스 접속하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari