[c#] 클래스와 구조체

C#은 객체지향 프로그래밍 언어로, 클래스구조체라는 두 가지 주요 타입을 제공합니다. 이러한 타입들은 데이터와 해당 데이터를 처리하는 메서드를 포함하여 프로그램 구조화에 중요한 역할을 합니다.

클래스 (Class)

클래스는 C#에서 가장 기본적인 타입 중 하나입니다. 클래스는 데이터를 저장하는 속성(필드)과 해당 데이터를 처리하는 메서드로 구성됩니다.

class Person
{
    public string Name;
    public int Age;

    public void PrintInfo()
    {
        Console.WriteLine($"Name: {Name}, Age: {Age}");
    }
}

위의 예제에서 Person 클래스는 NameAge 두 개의 속성을 가지며, PrintInfo라는 메서드를 포함하고 있습니다.

구조체 (Struct)

구조체는 값 형식으로서, 간단한 데이터를 담는 데 사용됩니다. 클래스와 마찬가지로 속성과 메서드를 가질 수 있지만, 구조체는 상속을 지원하지 않으며 기본 생성자를 가질 수 없습니다.

struct Point
{
    public int X;
    public int Y;

    public void Print()
    {
        Console.WriteLine($"X: {X}, Y: {Y}");
    }
}

위의 예제에서 Point 구조체는 XY 두 개의 속성을 가지며, Print라는 메서드를 포함하고 있습니다.

클래스와 구조체의 사용 예

어떤 경우에는 클래스보다 구조체를, 혹은 그 반대의 경우에는 클래스를 사용하는 것이 적절합니다. 클래스는 참조 타입이므로 힙 메모리에 저장되고, 구조체는 값 타입이므로 스택에 저장됩니다.

C#에서는 클래스와 구조체를 설계 및 구현하는 방법에 관한 풍부한 자료가 있습니다(Microsoft Documentation).

이러한 클래스와 구조체는 데이터를 캡슐화하고 메서드로 데이터를 처리함으로써 코드를 구조화하고 유지보수하기 쉬운 형태로 만들어줍니다.