사용자 정의 타입

사용자 정의 타입

C#에 기본 탑재된 16가지 미리 정의된 타입 외에도 개발자가 직접 생성할 수 있는 사용자 정의 타입이 있으며 총 6가지 분류로 나뉩니다.

  1. 클래스(class) 타입
  2. 구조체(struct) 타입
  3. 배열(array) 타입
  4. 열거형(enum) 타입
  5. 델리게이트(delegate) 타입
  6. 인터페이스(interface) 타입

사용자 정의 타입은 타입 선언을 통해 생성합니다

  • 생성할 타입의 종류
  • 새 타입의 이름
  • 해당 타입의 모든 멤버 선언(이름 및 정의). 단 배열과 델리게이트에는 이름이 지정된 멤버가 없으므로 예외입니다

선언을 마치면 미리 정의된 타입처럼 해당 타입의 객체를 생성하고 사용할 수 있습니다.

미리 정의된 타입(내장 타입)은 별도 선언 없이 바로 사용하고 객체를 인스턴스화할 수 있습니다. 반면 사용자 정의 타입은 이름 그대로 타입 설계도를 먼저 직접 선언한 뒤 객체를 만들어야 합니다.

예시: int, float 같은 내장 기본 타입은 별도 정의 없이 즉시 사용 가능하며 int age; float price; 형태로 작성하면 됩니다.
앞서 언급한 Person 사용자 정의 타입은 두 단계 과정이 필요합니다.

1단계: 선언(class Person {}로 타입 템플릿 정의)

2단계: 인스턴스화(Person lucas = new Person();로 객체 생성)

// 자동차 클래스
public class Car
{
    // 1. 비공개 필드(하위 데이터 저장 공간)
    private string _brand;    // 차 브랜드
    private string _color;    // 차 색상

    // 2. 공개 속성(외부 접근 창구, 유효성 검사 로직 추가 가능)
    public string Brand
    {
        get { return _brand; }
        set
        {
            // 간단 유효성 검사: 브랜드명은 빈 값 불가
            if (!string.IsNullOrEmpty(value))
                _brand = value;
            else
                Console.WriteLine("브랜드 이름은 비워둘 수 없습니다!");
        }
    }

    public string Color
    {
        get { return _color; }
        set { _color = value; }
    }

    // 3. 주행 동작 메서드
    public void Drive()
    {
        Console.WriteLine($"【{Color}】색상의【{Brand}】차가 주행 중입니다!");
    }
}Code language: JavaScript (javascript)

위 예시는 자동차 클래스로 두 개의 필드를 포함합니다. 필드는 변수로 내장 타입을 활용해 실제 데이터를 저장하는 곳입니다. 그 외 public string Brand{} 와 public string Color{} 두 공개 속성이 있는데 본질적으로 함수이며 이후 내용에서 다룹니다. 마지막으로 함수 멤버인 public void Drive(){} 도 정의되어 있습니다.

이 여러 사용자 정의 타입들은 이후 장에서 핵심적으로 설명하겠습니다.

사용자 정의 타입

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다