[c#] 클래스와 구조체
C#은 객체지향 프로그래밍 언어로, 클래스와 구조체라는 두 가지 주요 타입을 제공합니다. 이러한 타입들은 데이터와 해당 데이터를 처리하는 메서드를 포함하여 프로그램 구조화에 중요한 역할을 합니다.
클래스 (Class)
클래스는 C#에서 가장 기본적인 타입 중 하나입니다. 클래스는 데이터를 저장하는 속성(필드)과 해당 데이터를 처리하는 메서드로 구성됩니다.
class Person
{
public string Name;
public int Age;
public void PrintInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}");
}
}
위의 예제에서 Person
클래스는 Name
과 Age
두 개의 속성을 가지며, PrintInfo
라는 메서드를 포함하고 있습니다.
구조체 (Struct)
구조체는 값 형식으로서, 간단한 데이터를 담는 데 사용됩니다. 클래스와 마찬가지로 속성과 메서드를 가질 수 있지만, 구조체는 상속을 지원하지 않으며 기본 생성자를 가질 수 없습니다.
struct Point
{
public int X;
public int Y;
public void Print()
{
Console.WriteLine($"X: {X}, Y: {Y}");
}
}
위의 예제에서 Point
구조체는 X
와 Y
두 개의 속성을 가지며, Print
라는 메서드를 포함하고 있습니다.
클래스와 구조체의 사용 예
어떤 경우에는 클래스보다 구조체를, 혹은 그 반대의 경우에는 클래스를 사용하는 것이 적절합니다. 클래스는 참조 타입이므로 힙 메모리에 저장되고, 구조체는 값 타입이므로 스택에 저장됩니다.
- 작은 크기의 데이터나 데이터의 집합체는 구조체로 정의하는 것이 효율적일 수 있습니다.
- 반면, 복잡한 동작을 포함하는 데이터나 다른 객체와의 상호작용이 필요한 경우에는 클래스를 사용하는 것이 적합합니다.
C#에서는 클래스와 구조체를 설계 및 구현하는 방법에 관한 풍부한 자료가 있습니다(Microsoft Documentation).
이러한 클래스와 구조체는 데이터를 캡슐화하고 메서드로 데이터를 처리함으로써 코드를 구조화하고 유지보수하기 쉬운 형태로 만들어줍니다.