C#에도 구조체(Structure)가 있다.
구조체와 클래스차이는?
1. 클래스는 참조형식, 구조체는 값 형식이다.
- 구조체의 인스턴스는 스택에 할당되고, 인스턴스가 선언된 블록이 끝나면 메모리에서 사라진다.
2. 클래스는 얕은 복사, 구조체는 깊은 복사
3. 클래스는 매개변수 없는 생성자 선언 가능, 구조체는 불가능
구조체 예시
struct Vector3
{
public float x, y, z;
public Vector3(float x, float y, float z)
{
this.x = x;
this.y = y;
this.z = z;
}
public override string ToString()
{
return string.Format("({0}, {1}, {2})", x, y, z);
}
}
테스트
class MainApp
{
static void Main()
{
Vector3 pos = new Vector3(1f, 1f, 1f);
Console.WriteLine(pos.ToString());
Console.WriteLine();
//깊은 복사
Vector3 newPos = pos;
newPos.y = 0f;
newPos.z = 0f;
Console.WriteLine(pos.ToString());
Console.WriteLine(newPos.ToString());
}
}
결과
(1, 1, 1)
(1, 1, 1)
(1, 0, 0)
참조
뇌를 자극하는 C# 5.0 프로그래밍, 박상현, 한빛미디어
'아카이빙 > C#' 카테고리의 다른 글
[C#] 인터페이스를 상속하는 인터페이스 (0) | 2018.06.18 |
---|---|
[C#] 인터페이스 (0) | 2018.06.18 |
[C#] 확장 메소드 (Extension Method) (0) | 2018.06.18 |
[C#] 오버라이딩 (0) | 2018.06.18 |
[C#] 형변환과 is, as (0) | 2018.06.18 |