質問

私は両方がオンになってこれらのコンパイルの両方のいずれかのコンパイラの警告やエラーもOption Strictとし、Option Explicitずにいることがわかります:

    Dim x As Exception = New Exception("this is a test")
    Dim y = New Exception("this is another test")

私の質問は、それが第一の方法(変数xを参照)または第二の方法を使用するのがより適切である(変数yを参照)?私の推測では、コンパイラが型を推論することができますので、変数は、所定の位置に初期化されているので、VBはAs句を必要としないということです。

私はそれだけで「フィール」権利としての第1の方法のようにする傾向があり、C#のような他の言語とのより一貫性のある、他の上の1つの方法についていくつかの良い理由があった場合だけ疑問に思いました。私はそれが本当に個人的な選択だと思います。

役に立ちましたか?

解決

私はDim x As New Exception("this is a test")にしてください。両方の世界、無inferingのベストが、それでも一度だけExceptionを入力する必要があります。)

他のヒント

見よオプション推測では、自動的に「Y」のタイプのうち、コンパイラの数字の不思議。 VS2008以降で使用可能です。あなたはそれをオフにすることにより、あなたが探しているエラーが発生します。

Option Strict On
Option Infer Off

Module Module1
    Sub Main()
        Dim x As Exception = New Exception("this is a test")
        Dim y = New Exception("this is another test")   ''# error BC30209
        Dim z As New Exception("this is a third test")
    End Sub
End Module

Option Inferは、このコンパイラの機能を制御するものです。双方は等価である - これはvarキーワードを使用するかどうか(議論の余地)C#の議論に類似しています。私の二セント個々の開発者にそれを残すことで、しかし、多くの人がそうな規則を確立し、それに従うことを言うだろう。

私は(変数の型宣言で)最初のものは使用するのが最も安全だと思います。プログラムが小さい場合、それは本当に違いをすることはありませんが、より大きなプログラムのために、顕著なコンパイラの遅れがあるかもしれません。だから、(私の意見で)タイプの宣言は行うための最善のことです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top