Home C#7 | Generics
Post
Cancel

C#7 | Generics

Generics(제네릭)

  • 일반적으로 Class를 정의할 때, 클래스 내의 모든 Data Type을 지정해 주게 된다.
  • 어떤 경우는 Class의 거의 모든 부분이 동일한데 일부 Data Type만이 다른경우가 있을 수 있다.

  • ex)
1
2
3
4
5
6
7
8
public class MathPlusInt
{
    int hap;
    public void set_data(int a)
    {
        hap = a;
    }
}
1
2
3
4
5
6
7
8
public class MathPlusFloat
{
    float hap;
    public void set_data(float a)
    {
        hap = a;
    }
}


  • ex2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Gen<T>
{
    public T _member;            // 어떤 데이터가 들어올지 모르기 때문에 T라는 변수를 선언해줌
    public void set_data( T t1)
    {
        _member = t1;
    }
}

public class Gen : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Gen<string> _gen = new Gen<string>();
        _gen.set_data("더조은");

        Debug.Log(_gen._member);

    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
1
2
3
 출력 

더조은


  • ex3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Gen<T>
{
    public T _member;            // 어떤 데이터가 들어올지 모르기 때문에 T라는 변수를 선언해줌
    public void set_data( T t1)
    {
        _member = t1;
    }
}

public class Gen : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log(_gen._member);

        int a = 1;
        int b = 2;

        Debug.Log(a + ":" + b);

        // a와 b 의 숫자를 교환하세요.
        int _Temp = a;
        a = b;
        b = _Temp;

        Debug.Log(a + ":" + b);
    }
}
1
2
3
4
5
6
7
 출력 

a = 1
b = 2

a = 2
b = 1

참고 사이트

This post is licensed under CC BY 4.0 by the author.