반응형
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 |