C# 구조체란 무엇인가?
구조체(Structure)는 값 형식(value type) 데이터 타입입니다. 구조체를 활용하면 서로 연관된 여러 데이터를 다양한 자료형으로 묶어 하나의 변수에 저장할 수 있습니다. C#에서는 struct 키워드를 사용하여 구조체를 생성합니다.
구조체 정의하기
구조체를 정의하려면 반드시 struct 문을 사용해야 합니다. struct 문은 프로그램에서 사용할 새로운 데이터 타입을 정의하며, 두 개 이상의 멤버를 포함할 수 있습니다.
예를 들어, 도서 정보를 담는 Books 구조체는 다음과 같이 선언할 수 있습니다. 이 구조체는 아래와 같은 멤버들로 구성됩니다.
struct Books {
public string title; // 책 제목
public string author; // 저자
public string subject; // 주제
public int id; // 도서 ID
};구조체 멤버 접근하고 출력하기
정의된 구조체의 멤버에 접근하여 값을 할당하고 화면에 출력하는 전체 예제는 다음과 같습니다.
예제 코드
using System;
struct Books {
public string title;
public string author;
public int id;
};
public class testStructure {
public static void Main(string[] args) {
Books Book1;
// 구조체 멤버에 값 할당
Book1.title = "PHP IN 7 Days";
Book1.author = "Jacob Dawson";
Book1.id = 34;
// 구조체 멤버 출력
Console.WriteLine("Book 1 title : {0}", Book1.title);
Console.WriteLine("Book 1 author : {0}", Book1.author);
Console.WriteLine("Book 1 book_id : {0}", Book1.id);
Console.ReadKey();
}
}구조체와 클래스의 차이점
구조체는 클래스(class)와 비슷해 보이지만 몇 가지 중요한 차이가 있습니다. 구조체는 값 형식이므로 변수 간에 할당될 때 데이터가 복사되며, 일반적으로 스택(stack)에 저장됩니다. 반면 클래스는 참조 형식(reference type)으로 힙(heap)에 저장되고 참조가 전달됩니다. 따라서 크기가 작고 단순한 데이터 그룹을 다룰 때는 구조체를 사용하는 것이 더 효율적입니다.