문제는 내 코드를 이해하기 어렵게 만드는 암시 적 유형 변환 연산자의 사용 사례는 무엇입니까?
유형 이 프로그래머와 관련이없는 경우 두 가지 관련되지 않은 유형 (코드에 관한 한)이 있고 실제로 관련된 (도메인 또는 합리적인 프로그래머의 경우) 관련된 (희소 한) 시나리오가 있습니다.
예를 들어, 일부 코드는 문자열 일치를 수행합니다. 일반적인 시나리오는 문자열 리터럴을 일치시키는 것입니다. 을 호출하는 대신 IsMatch(input, new Literal("some string"))
암시 적 변환을 통해 코드에서 발생하는 잡음을 제거하고 문자열 리터럴에 집중할 수 있습니다.
대부분의 프로그래머 IsMatch(input, "some string")
는 진행중인 작업을 보고 신속하게 직감 할 것입니다. 호출 사이트에서 코드를 명확하게 만듭니다. 즉, 그것은 좀 더 쉽게 이해할 수 있습니다 무엇 에 약간의 비용으로 진행되고 어떻게 그 일이 벌어지고.
이제 동일한 기능을 수행하는 간단한 함수 과부하가 더 좋을 것이라고 주장 할 수 있습니다. 그리고 그건. 그러나 이런 종류의 것이 어디에나 존재한다면, 함수 오버로드를 수행하는 것보다 하나의 변환이 더 깔끔합니다 (코드가 적고 일관성이 향상됨).
그리고 프로그래머가 "실제로 무슨 일이 일어나고 있는지"를 볼 수 있도록 중간 유형을 명시 적으로 작성하도록 요구하는 것이 낫다고 주장 할 수 있습니다. 덜 간단합니다. 개인적으로, 리터럴 문자열 일치 예제는 "실제로 진행되고있는 일"에 대해 매우 분명하다고 생각합니다. 프로그래머는 모든 일 이 어떻게 일어나는지에 대한 메커니즘을 알 필요가 없습니다 . 코드가 실행되는 다양한 프로세서에서 모든 코드가 어떻게 실행되는지 알고 있습니까? 프로그래머는 무언가가 어떻게 작동 하는지 신경 쓰지 않는 추상화 라인이 항상 있습니다. 암시 적 변환 단계가 중요하다고 생각되면 암시 적 변환을 사용하지 마십시오. 그들이 컴퓨터를 행복하게 유지하기위한 행사 일 뿐이라고 생각한다면 프로그래머는 어디서나 그 소음을 보지 않는 것이 좋습니다.