코드 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);
}
}