문법에 대해 알아보겠다.
제너릭 프로그래밍이라고 한다.
C++에서는 템플릿 Java나 C#에서는 제너릭이라고 한다.
밑에 코드는 중복이 너무나도 많다 매소드의 타입만 다를 뿐이다.
3가지 중복을 중복을 줄이면서 하나로 만드는 작업에 제너릭을 사용해 보겠다.
밑에 코드는 제너릭을 사용하므로써 3개를 1개로 만들었다.
호출할때 int를 넣게 되면 <FACT> 자리에 int값으로 바꾸게 된다.
메소드에 적용한 사례이다.
<FACT>말고도 원하는것을 쓰면 된다. 보통 <T>라고 쓴다.
이름과 메소드 사이에 들어가야 한다.
이와같이 제너릭은 다른 것은 동일하고 타입이 다를 경우에 사용한다.
위에 구조를 밑에 그림으로 나타내 보았다.
밑에 코드는 ArrayInt1의 내용을 ArrayInt2에 복사하는 방법이다. (수작업으로)
rrayInt1의 내용을 ArrayInt2에 복사하는 방법이다. (for문을 통해서)
위에 for문을 가져다가 메소드를 만들었다.
ArrayIntCopy, ArrayDoubleCopy라는 이름의 메소드를 만들었다.
위에도 타입만 다르지 내용이 똑같기에 제너릭을 사용해보겠다.
밑에 코드가 제너릭을 사용해서 만든 코드이다.
이번에는 타입이 하나가 아니라 두개인경우를 해보겠다.
<T1,T2>으로 써서 사용한다.
그리고 밑에 본문에는 <>를 사용하지 않아도 사용이 가능하다.
여기서 잠깐 전에는 왜써는데 여기서는 안쓰는가? 나도 잘 모른다.
전에꺼에도 <>를 생략하면 사용이 가능하다.
이번에는 클래스형태의 제너릭을 만들어 보겠다.
밑에 코딩구문은 그냥 일반적인 형태이다.
밑에 구문은 제너릭형태의 코딩이다.
결과는 보기와 같이 같다.
밑에 코딩은 한가지가 아니라 두가지일 경우에 사용하는 방법을 나타내었다.
'스마트팩토리 > C#' 카테고리의 다른 글
소코반 만들기 전 기초 작업(배열) (0) | 2020.10.23 |
---|---|
2020/9/8 C# (0) | 2020.09.08 |
2020/7/30 C# (0) | 2020.07.30 |
2020/07/29 C# (0) | 2020.07.29 |
2020/7/28 C# (0) | 2020.07.28 |