問題は、コードを理解しにくくすることのない暗黙の型変換演算子のユースケースは何ですか?
型が(プログラマーと)無関係ではない場合。(コードに関する限り)2つの無関係なタイプがある(まれな)シナリオがあり、実際には(ドメインまたは合理的なプログラマーに関して)関係しています。
たとえば、文字列の照合を行うコード。一般的なシナリオは、文字列リテラルを一致させることです。IsMatch(input, new Literal("some string"))
暗黙的な変換では、呼び出すのではなく、その儀式(コード内のノイズ)を取り除き、文字列リテラルに集中できます。
ほとんどのプログラマーはIsMatch(input, "some string")
、何が起こっているのかを見てすぐに直観します。これにより、呼び出しサイトでコードが明確になります。つまり、何が起こっているのかを少し犠牲にして、何が起こっているのかを少し理解しやすくします。
さて、同じことをするための単純な関数のオーバーロードの方が良いと主張するかもしれません。そしてそれは。しかし、この種のものが遍在する場合、関数のオーバーロードの山を実行するよりも、1つの変換を持つほうがクリーン(コードが少なく、一貫性が向上)です。
そして、プログラマーが中間タイプを明示的に作成して「実際に何が起こっているのか」を確認するように要求する方が良いと主張するかもしれません。それはそれほど簡単ではありません。個人的には、リテラル文字列の一致の例は、「実際に何が起こっているのか」について非常に明確だと思います。プログラマーは、すべてがどのように起こるかのメカニズムを知る必要はありません。コードが実行されるさまざまなプロセッサによって、すべてのコードがどのように実行されるかを知っていますか?プログラマが気に停止抽象化のラインは常にありますどのように何かの作品が。暗黙的な変換手順が重要だと思われる場合は、暗黙的な変換を使用しないでください。もし彼らがコンピューターを幸せに保つための単なる儀式だと思うなら、プログラマーはあちこちでそのノイズを見ないほうが良いでしょう、