더북(TheBook)

코드 2-2 값을 포함하는 클래스의 전체 구현

public class PostId{
    public int Value { get; private set; }
    public PostId(int id) {
        if (id <= 0) {
            throw new ArgumentOutOfRangeException(nameof(id));
        }
        Value = id;
    }
    public override string ToString() => Value.ToString();
    public override int GetHashCode() => Value;
    public override bool Equals(object obj) {

→ System.Object 재정의, 화살표 구문 표기법 사용

        return obj is PostId other && other.Value == Value;
    }
    public static bool operator ==(PostId a, PostId b) {    → 등가 연산자에 대한 코드 오버로드
        return a.Equals(b);
    }
    public static bool operator !=(PostId a, PostId b) {    → 등가 연산자에 대한 코드 오버로드
        return !a.Equals(b);
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.