うちの会社はMS万歳な会社なので、当然.NETだ
そしてご多分に漏れずVB.NETらしい。
せめてC#にならんものか…と思うがVB.NETだ。
それはともかく、今日、VB.NETのコーディング規約をちらっとみてみたんだがその中に、
> 文字列の比較は strA = strB ではなく strA.Equals(strB) で比較すること
ってのがあった。
一体なんで?
もしこの規則に従うなら、.NETはJavaとかとは違い、整数型の数値なんかもオブジェクトだから、整数を比較するときでも intA = intB ではなくて、intA.Equals(intB)じゃないとならないのでは?と思うんですが。なんで文字列だけ特別なのさ?
言いたいことは strA = strB よりも、strA.Equals(strB)のほうが速度的に有利ってことなんだろうけど。
しかしこれ、統一性がなくて嫌な感じなんですけど。
ついでに、equal(strA,strB) ならともかく、strA.Equals(strB) ってオブジェクト指向らしいのかもしれないけど、非対称的でアセンブラチックな感じがするのも好きじゃないんだけど。
そうはいっても、速度が劇的に速いんだ、と言われたら反論できないんだろうな。
あと、統一性がないといえば、インスタンスへの参照をクリアするときに、
オブジェクトの場合は Nothing を
文字列の場合は "" を
配列の場合は Erase ステートメントを使って
クリアしろと書いてあったんだが、なんで場合わけするんだろう?一律に Nothing を突っ込むわけにはいかないんだろうか?
もっともちゃんと調べていないのでなんともいえないところなんですが。
まずはコーディング規約を作った人に理由を聞いてみようかなあ。