[Unity]/[C#]

[C#] 구조체(struct)

극꼼 2022. 5. 16. 09:10
반응형


1. 구조체란?

2. 구조체 구현 예시

3. 구조체와 클래스의 차이


1. 구조체란?

: 사용자 정의 데이터로, 값 형식입니다. 구조체를 정의하려면 struct 문을 사용합니다.

 

*구조체의 특징 (C#에서의 구조체는 C/C++의 구조체와 다른 점이 존재)

- 메서드, 필드, 속성 등을 가질 수 있습니다.

- 구조체는 다른 클래스를 상속받을 수 없습니다.

- 값 타입의 데이터로, new를 선언할 필요 없이 바로 사용 가능합니다.

 

 

2. 구조체 구현 예시

struct Student 
{
    public string name;
    public int age;
    
    public Student(string _name, int _age)
    {
        name = _name;
        age = _age;
    }
};

public class MyStructTest 
{
    void Start() 
    {
        Student std; //new 연산자 없이 선언 가능
 
        std.name = "짱구";
        std.age = 5;
        
        Student std2 = new Student(철수, 6); //이 방법으로도 선언 가능
    }
}

 

3. 구조체와 클래스의 차이

  구조체 클래스
형식 값 형식(Stack영역에 값을 저장) 참조 형식(Heap영역에 인스턴스가 생성되고, Stack영역에 주소값을 저장)
상속 x o

 

클래스가 구조체의 상위호환이며, 간단한 구조를 정의할 때 구조체를 사용합니다. 

* 클래스를 사용해야 하는 경우 : 상속이 필요한 경우, 메모리를 많이 차지하는 경우

* 구조체를 사용해야 하는 경우 : 짧게 생성되고 없어지는 경우, 클래스를 사용할 필요가 없는 경우

 

반응형

'[Unity] > [C#]' 카테고리의 다른 글

[C#] 오버라이딩과 오버로딩  (0) 2022.05.22
[C#] delegate와 event의 차이  (0) 2022.05.18
[C#] 인터페이스  (0) 2022.05.15
[C#] 메모리(+ 가비지)  (0) 2022.05.13
[C#] Nullable (feat. int?)  (0) 2022.02.04