프로그래밍 언어에는 자료형이 존재하고 자료형에 따라 자료를 표현/저장/연산하는 방법이 다르기 때문에 동일한 작업도 자료형에 따라 각기 다른 프로그램을 작성해야 한다. 이런 불편을 해소하기 위해 도입된 개념이 제네릭(generics)이며 자료형을 매개변수로 가질 수 있다.
C#에서 지원하는 제네릭 프로그램 단위에는 클래스, 구조체, 인터페이스 그리고 메소드가 있다. 자료형을 매개변수로 갖는 제네릭 클래스(generic class)를 범용 클래스 또는 포괄 클래스라 번역할 수 있다.
참고 예제]
using System;
using System.Collections.Generic;
using System.Text;
namespace Chapter1
{
class Stack<StackType>
{
private StackType[] stack = new StackType[100];
private int sp = -1;
public void Push(StackType element)
{
stack[++sp] = element;
}
public StackType Pop()
{
return stack[sp--];
}
}
class GenericClassApp
{
public static void Main()
{
Stack<int> stk1 = new Stack<int>(); //정수형 스택
Stack<double> stk2 = new Stack<double>(); //실수형 스택
stk1.Push(1);
stk1.Push(2);
stk1.Push(3);
Console.WriteLine("integer stack : " + stk1.Pop() + " " + stk1.Pop() + " " + stk1.Pop());
stk2.Push(1.5);
stk2.Push(2.5);
stk2.Push(3.5);
Console.WriteLine(" double stack : " + stk2.Pop() + " " + stk2.Pop() + " " + stk2.Pop());
}
}
}
참고 예제 결과]
대한민국의 아름다운 영토, 독도의 여름
'프로그램 > C# 1000제' 카테고리의 다른 글
C# 1제] C# 프로그래밍 입문 CHAPTER 2. p105 2.12 (1) 삼각형의 넓이 구하기 (0) | 2021.07.20 |
---|---|
C# 예제8] C# 프로그래밍 입문 CHAPTER 1. p33 스레드 (0) | 2021.07.19 |
C# 예제6] C# 프로그래밍 입문 CHAPTER 1. p31 이벤트 (0) | 2021.07.17 |
C# 예제5] C# 프로그래밍 입문 CHAPTER 1. p28 델리게이트 (0) | 2021.07.16 |
C# 예제4] C# 프로그래밍 입문 CHAPTER 1. p27 연산자 중복 (0) | 2021.07.15 |
댓글