C#에서 사용자 정의 데이터 형식에는 구조체(Structure)와 열거형(Enumeration)이 있습니다. 이 두 가지 형식을 활용하면 개발자가 직접 필요에 맞는 데이터 구조를 설계하고 사용할 수 있습니다.
구조체(Structure)
C#에서 구조체는 값 형식(value type) 데이터 형식입니다. 하나의 변수에 서로 다른 데이터 형식을 가진 관련 데이터들을 함께 담을 수 있도록 도와주며, 구조체를 선언할 때는 struct 키워드를 사용합니다.
C# 구조체의 주요 특징은 다음과 같습니다.
- 구조체에는 메서드, 필드, 인덱서, 속성, 연산자 메서드, 이벤트 등을 포함할 수 있습니다.
- 구조체는 생성자를 정의할 수 있지만 소멸자는 정의할 수 없습니다. 또한 매개변수가 없는 기본 생성자는 컴파일러에 의해 자동으로 정의되므로 직접 정의하거나 변경할 수 없습니다.
- 클래스와 달리 구조체는 다른 구조체나 클래스를 상속받을 수 없습니다.
- 구조체는 다른 구조체나 클래스의 기반(base)이 될 수 없습니다.
- 구조체는 하나 이상의 인터페이스를 구현할 수 있습니다.
- 구조체 멤버는
abstract,virtual,protected로 지정할 수 없습니다.
열거형(Enumeration)
열거형(Enum)은 연도, 제품, 월, 계절처럼 서로 연관된 명명된 상수들의 집합을 저장하는 데 사용되는 데이터 형식입니다.
열거형 상수의 기본값은 0부터 시작하여 1씩 증가하며, 고정된 상수 집합을 가지고 있어 반복문을 통해 손쉽게 순회할 수 있다는 장점이 있습니다.
간단한 예제를 통해 살펴보겠습니다. 아래와 같이 차량 종류를 나타내는 열거형을 정의할 수 있습니다.
public enum Vehicle { Car, Bus, Truck }위 예제에서 Car는 0, Bus는 1, Truck은 2의 값을 가지게 됩니다. 이렇게 열거형을 사용하면 의미 있는 이름으로 상수를 관리할 수 있어 코드의 가독성과 유지보수성이 크게 향상됩니다.