훨씬 나아졌다. 하지만 아직 어떤 결과가 반환될지를 알 방법이 없다. 오류 코드를 반환하는 건지, 이동한 항목의 개수를 반환하는 건지, 아니면 이동 작업에서 충돌로 인한 새로운 토픽 식별자를 반환하는 건지 알 수 없다. 어떻게 코드 주석에 의존하지 않고 정보를 전달할 수 있을까? 당연하게도, 타입을 활용하는 방법이 있다. 대신 다음 코드를 생각해 보자.
public MoveResult MoveContents(int fromTopicId, int toTopicId) { // 실제 코드 return MoveResult.Success; }
조금 더 명확해졌다. int가 이동 함수의 결과라는 것을 이미 알고 있었기 때문에 크게 추가된 것이 없다고 생각할 수 있다. 하지만 분명 차이가 있다. 이제 비주얼 스튜디오나 VS Code에서 F12 키를 눌러 MoveResult 타입의 기능을 쉽게 확인할 수 있다.
public enum MoveResult{ Success, Unauthorized, AlreadyMoved }