Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 구조체(Struct) 완벽 가이드: 정의 방법과 멤버 사용법

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)에 저장되고 참조가 전달됩니다. 따라서 크기가 작고 단순한 데이터 그룹을 다룰 때는 구조체를 사용하는 것이 더 효율적입니다.