[C#] Generic Type 사용하기

2022. 4. 25. 14:34·언어/C#
728x90

동일한 내용이지만 데이터 타입만 다른 메소드를 사용할 때, 원래대로라면 매번 데이터 타입만 다르고 내용은 같은 메소드를 만들어주어야 한다. 이때 Generic Type을 사용하면 메소드를 한 번만 호출하고도 원하는 기능을 모두 사용할 수 있다.

void Swap<T> (ref T a,ref T b)
{
    var temp = a;
    a = b;
    b = temp;
}

a와 b의 자리를 바꿔주는 간단한 예시문이다. 이름 뒤에 <T>를 붙여 모든 데이터 타입을 아우를 수 있게 됐다.

class Program
{
    void Swap<T> (ref T a,ref T b)
    {
        var temp = a;
        a = b;
        b = temp;
    }
    void IntProcess()
    {
        int a = 1;
        int b = 2;
        Swap (ref a, ref b);
        Console.WriteLine($"a = {a} b = {b}");
    }
    void StringProcess()
    {
        string a = "안녕";
        string b = "Hi";
        Swap (ref a, ref b);
        Console.WriteLine($"a = {a} b = {b}");
    }
    static void Main(string[] args)
    {
        var p = new Program();
        p.IntProcess();
        p.StringProcess();
    }
}

int타입과 string타입에서 모두 사용 가능하다!

void Swap<T> (ref T a,ref T b) where T : struct

처럼 제약 조건을 걸 수도 있다.

728x90

'언어 > C#' 카테고리의 다른 글

[C#] Queue과 Stack  (0) 2022.05.02
[C#] 함수, 클래스, 객체, 인스턴스, 생성자  (0) 2022.04.25
[C#] temp를 사용한 자리 바꿔치기  (0) 2022.04.25
[C#] CS0122 보호 수준 때문에 액세스할 수 없습니다  (0) 2022.04.25
[C#] overloading과 overriding  (0) 2022.04.25
'언어/C#' 카테고리의 다른 글
  • [C#] Queue과 Stack
  • [C#] 함수, 클래스, 객체, 인스턴스, 생성자
  • [C#] temp를 사용한 자리 바꿔치기
  • [C#] CS0122 보호 수준 때문에 액세스할 수 없습니다
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (238) N
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (3) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크
    tcp
    게임서버
    EntityFramework
    라즈베리파이
    C언어
    C
    HTML
    unity
    EFCore
    코딩
    coding
    자바
    Entityfamework
    디자인패턴
    백준
    C#
    java
    Python
    유니티
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[C#] Generic Type 사용하기
상단으로

티스토리툴바