C# 구조체(Structure)란?
C#에서 구조체는 값 형식(value type) 데이터 타입입니다. 구조체를 활용하면 하나의 변수에 서로 다른 데이터 타입의 관련 데이터를 함께 담을 수 있어 코드 관리가 한결 편리해집니다.
구조체를 정의하려면 struct 키워드를 사용해야 합니다. struct 문은 프로그램에서 사용할 새로운 데이터 타입을 정의하며, 여러 개의 멤버를 포함할 수 있습니다.
구조체 정의 예시
struct Book { public string title; public string author; public int price; }C# 클래스(Class)란?
클래스를 정의한다는 것은 특정 데이터 타입의 설계도(blueprint)를 만드는 것과 같습니다. 클래스 정의는 class 키워드로 시작하고, 그 뒤에 클래스 이름이 오며, 중괄호({ })로 묶인 클래스 본문으로 구성됩니다.
클래스 정의 예시
class Car { public string model; public int year; }구조체와 클래스의 주요 차이점
메모리 할당 방식: 구조체는 값 형식(value type)이고, 클래스는 참조 형식(reference type)입니다.
메서드 전달 방식: 클래스 객체를 메서드에 전달할 때는 참조(reference)로 전달되지만, 구조체는 값(value)으로 전달됩니다.
상속 지원 여부: 클래스는 상속(Inheritance)을 지원하지만, 구조체는 상속을 지원하지 않습니다.
소멸자(Destructor): 클래스에는 소멸자를 사용할 수 있지만, 구조체에서는 소멸자를 사용할 수 없습니다.
기본 생성자: 구조체에는 기본 생성자(default constructor)를 선언할 수 없습니다.
언제 구조체를 사용해야 할까?
일반적으로 크기가 작고 불변(immutable)인 데이터를 표현할 때는 구조체가 유리합니다. 반면 상속이 필요하거나 객체 간 참조 공유가 필요한 경우에는 클래스를 사용하는 것이 적합합니다. 이러한 차이를 잘 이해하면 메모리 사용 효율과 성능을 모두 최적화할 수 있습니다.