0

私は Visual Basic での開発は初めてですが、C#/C/C++/JAVA/Haskell などで多くの経験があります。

コードを維持し、型宣言が怠惰に見えるコード例を見つけている理由はありますか? String 型としてのみ使用され、オブジェクトとして宣言された数え切れないほどの String を見てきました。VB.NET のオブジェクト指向機能が登場する前は、メソッドが複数の型を確実に取り込めるようにする必要があったのでしょうか? なぜ誰かがこれをするのでしょうか?

4

3 に答える 3

5

推測では...怠惰と古いVB6の習慣が引き継がれています。

于 2009-08-14T15:02:11.870 に答える
3

VB6 には、さまざまな型を取り込めるバリアント型があり、慎重に使用することを意図していました。.Net が出てきたとき、(コードを大幅に変更する以外に) そのための唯一の変換は、オブジェクトを型として使用することでした。

メソッドが複数の型を取り込むために説明したように、コードがその柔軟性を必要としていると思われる場合、VB6 からのハングオーバー効果またはコード変換効果と間違いなく呼びます。

ただし、オブジェクトとして宣言された文字列型のコードが表示されている場合、これは単なる怠惰や VB6 の影響よりもはるかに悪いことです。それは恐ろしく貧弱なデザインとケアの欠如のように聞こえます.

于 2009-08-14T15:46:55.277 に答える
1

一部のVB6エキスパート、たとえば「マンデルブロ集合」は、すべての変数にバリアントを使用するようにアドバイスしました。あなたはそれを初期のダックタイピングと呼ぶことができますか?!これはかなり物議をかもした-私たちの多くはそれが災害のレシピだと思った。

しかし、このようなコードはたくさんあるはずです。最新の変換ツールが登場する前は、VB.NETにアップグレードするのは非常に困難でした。Visual Studioアップグレードツールは、バリアントが表示されるたびにパニックになります。限られたリソースで本当にアップグレードする必要がある場合は、すべてのバリアントをObjectに変更するのが最も悪いオプションかもしれないと思います。明らかに、結果のコードは恐ろしいものになります。

徐々にリファクタリングすることができます。コードの領域で作業する場合、宣言をより具体的なタイプに変更できます。

于 2009-08-17T09:18:32.317 に答える