C# Practicing(Generic Programming2)

2023. 10. 24. 15:00Game Develop/C# Programming

오늘은 데이터 형식만 다른 메서드를 추가하지 않고도 다른 데이터 타입의 변수를 사용할 수 있는 메서드를 만들어 보려고 한다.

 

저번 시간에 만들었던 메서드를 다시 가져와 보자 이를 1번 코드라하겠다.

자 우리는 저번 시간에 int형 배열에 int형 변수를 집어넣는 insertNum 메서드를 만들었다. 하지만 char 형 배열에 char 형 변수나 string, float 등의 데이터는 넣어줄 수 없었다. 그렇다면 데이터 형식만 다른 메서드를 만들 수 밖에 없나? 다행히도 우리는 일반화 프로그래밍을 통해 메서드 하나만으로 int가 아닌 다른 데이터 타입의 변수도 함께 사용할 수 있다.

 

일반화 프로그래밍


일반화란 여러 개체들이 가지고 있는 공통된 특성을 부각시켜 한 개념이나 법칙을 성립시키는 과정 혹은 그 결과로 얻어진 진술이다(출처 네이버 지식백과).

일반화 프로그래밍이란 데이터 형식을 따로 지정해 주지 않고 를 통해 나타내 주어 메인에서 이를 지정해주는 메서드이다.

이해하기 쉽게 위의 코드를 일반화 프로그래밍으로 바꿔보자 이를 2번 코드라 하겠다.

int만 가능한 1의 메서드명 InsertNum을 모든 데이터 타입이 가능하기 때문에 Insert로 바꿔주고 뒤에는 를 붙여줌으로써 일반화 프로그래밍을 하겠다고 알려준다.

그 이후에 배열의 데이터 타입과 value값을 원하는 데이터 타입을 넣을 수 있게 로 바꿔준다. 그 밑의 문장도 마찬가지로 T로 바꿔주기만 하면 일반화 프로그램이 완성이 된다.

 

그럼 메인에선 어떻게 써야할까?

 
 
이름만 바꾸면 된다!!
 
 
실행도 잘 되는 것을 확인할 수 있다. 이제 다른 데이터 타입도 되는지 확인해보자

 

float)

 
char)
 
위처럼 float과 char로 바꾸어 주었음에도 아무런 무리 없이 작동했음을 볼 수 있었다.

 

다음에는 Insert 메서드의 마지막 문장 arr = resultArr;를 ref를 쓰면 왜 바꿔줄 수 있는지 자료구조로 설명해보겠다.

'Game Develop > C# Programming' 카테고리의 다른 글

C# Practicing(스레드)  (1) 2023.10.24
C# Practicing(C#의 자료구조)  (1) 2023.10.24
C# Practicing(Generic Programming1)  (0) 2023.10.24
C# Practicing(Property 응용)  (0) 2023.10.24
C# Practicing(static & property)  (0) 2023.10.24