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