- 243 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 20:33:16.54 ID:R9lW8EDm.net]
- 結局、C#のEqualsやキャプチャとかが分かりにくくなってしまったのは
利用者から見て隠すべきでない物を隠してしまった所にあるんだろうな operator == のオーバーロードも、C++ならポインタと実態の違いをプログラマが . と -> の違いとしてしっかり認識しながらプログラムしている。問題なんか見たことない。 だから、C++のプログラムをしていた自分はJava屋が指摘する == のオーバーロードの危険性について そんなの気にしすぎと軽視していたんだよな、ところが実際にはヤバかった。 C++プログラマは、ポインタとして利用しているオブジェクトには、ポインタらしい == のオーバーロードを 実体に対しての == は、実体を比較する為のオーバーロードをいつも意識している。 C#は、参照(意味的にはポインタ)を、実体の比較としてオーバーロードしようとしてしまう。意識していないからね。 このあたりが齟齬の発生地点のような気がする。 というかC#はじめて、やらかした。 どころか、標準の string からしてやらかしている。 C++では、ラムダ式でもしっかりと意識したコードができるようになっている。 次の問題は async /await だ、あれも隠してはいけない物の代表格、バグの温床だね。 C#の設計陣、そろそろ学習しろよって思うのであるがw
|
![](http://yomi.mobi/qr.gif)
|