다음과 같은 식별자에 대한 사용자 정의 유형을 작성하려고 생각했습니다.
public enum CustomerId : int { /* intentionally empty */ }
public enum OrderId : int { }
public enum ProductId : int { }
이것에 대한 나의 주요 동기는 실수로 orderItemDetailId를 기대하는 함수에 orderItemId를 전달하는 버그의 종류를 방지하는 것입니다.
열거 형은 일반적인 .NET 웹 응용 프로그램에서 사용하려는 모든 항목과 완벽하게 작동합니다.
- MVC 라우팅은 잘 작동합니다
- JSON 직렬화는 잘 작동합니다
- 내가 생각할 수있는 모든 ORM은 잘 작동합니다.
"지금 왜 안합니까?" 이것들은 내가 생각할 수있는 유일한 단점입니다.
- 다른 개발자를 혼동시킬 수 있습니다
- 비 적분 식별자가있는 경우 시스템에 불일치가 발생합니다.
- 과 같은 추가 캐스팅이 필요할 수 있습니다
(CustomerId)42. 그러나 ORM 및 MVC 라우팅은 일반적으로 열거 형 값을 직접 전달하기 때문에 이것이 문제가 될 것이라고 생각하지 않습니다.
그래서 제 질문은 무엇을 놓치고 있습니까? 이것은 아마도 나쁜 생각이지만 왜 그럴까요?