더북(TheBook)

38.14 생성자로 속성에 대한 유효성 검사 구현하기

프로그램을 작성하다 보면 특정 속성은 반드시 특정 값으로 초기화해야 할 때가 있습니다. 즉, null 또는 빈 값이 들어오면 안 될 때가 있는데, 이때는 생성자를 사용하여 반드시 특정 문자열을 넘겨주도록 강제할 수 있습니다. 넘어온 값이 null 또는 빈 값이면 에러를 강제로 발생시켜 좀 더 견고한 클래스를 만들 수 있습니다.

생성자를 사용하여 초기화: PropertyValidation.cs

using System;

namespace PropertyValidation
{
    class Car
    {
        public string Name { get; private set; }
        public Car(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                //빈 값이면 강제로 ArgumentException 예외 발생
                throw new ArgumentException();
            }
            this.Name = name;
        }
    }

    class PropertyValidation
    {
        static void Main()
        {
            //① 정상 실행
            Car car = new Car("자동차");
            Console.WriteLine(car.Name);

            //② 예외 발생
            //Console.WriteLine((new Car("")).Name);
        }
    }
}

실행 결과

자동차

Main() 메서드의 은 생성자의 매개변수로 전달된 값으로만 속성을 초기화하는 예제입니다. 처럼 생성자에 빈 값이 전달되면 throw 구문이 강제로 예외를 발생시킬 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.