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 구문이 강제로 예외를 발생시킬 수 있습니다.