본문 바로가기
Study/C#

[C#][Study][기초다지기] 제네릭 Generic

by 스테디코디스트 2023. 9. 23.
반응형

제네릭

- 코드 type 안전성, 성능 및 코드 유용성을 향상시킴

- 대부분 Generic은 컬렉션 클래스를 생성하는데 사용됨(List<int>, Vector<string> 등) 

- System.Collections.Generic 네임스페이스를 추가해 제네릭을 사용할 수 있음

- 자신만의 코드를 만들 수 있음

 

1) 선언

public class GenericList<T>
    {
        void Add(T input) { }
    }

2) 사용

class TestGenericList
    {
        private class ExampleClass { }
        
        static void Main()
        {
            // int형 리스트
            GenericList<int> list1 = new GenericList<int>();
 
            // string형 리스트
            GenericList<string> list2 = new GenericList<string>();
 
            // ExampleClass형 리스트
            GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
        }
    }

3) 예제

using System;
using System.Collections.Generic;
 
namespace Generics_Example
{
    // 제네릭 클래스 선언
    public class GenClass<T>
    {        
        public void GenFunction(T printvalue)
        {
            Console.WriteLine(printvalue);
        }
    }
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Printing Integer Value");            
            GenClass<int> gen = new GenClass<int>(); // int형
            gen.GenFunction(144);
 
            Console.WriteLine("Printing String Value");
            GenClass<string> genstring = new GenClass<string>(); // string형
            genstring.GenFunction("Hello String");
        }
    }
}