본문 바로가기
프로그램/C# 1000제

C# 예제7] C# 프로그래밍 입문 CHAPTER 1. p32 제네릭

by 건티 2021. 7. 18.
728x90

프로그래밍 언어에는 자료형이 존재하고 자료형에 따라 자료를 표현/저장/연산하는 방법이 다르기 때문에 동일한 작업도 자료형에 따라 각기 다른 프로그램을 작성해야 한다. 이런 불편을 해소하기 위해 도입된 개념이 제네릭(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());
        }
    }
}

 

참고 예제 결과]

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글