0

これらの両方がオンになってOption Strictいても、コンパイラの警告やエラーなしでコンパイルされることに気付きました。Option Explicit

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

私の質問は、最初の方法 (変数 x を参照) または 2 番目の方法 (変数 y を参照) を使用する方が適切ですか? As私の推測では、変数がその場で初期化されているため、VB は句を必要としないため、コンパイラは型を推測できます。

C#私は最初の方法を好む傾向があります。なぜなら、それは単に「正しいと感じ」、他の言語のような他の言語とより一貫しているからです。それは本当に個人的な選択だと思います。

4

4 に答える 4

4

Option Infer On の驚異に注目してください。コンパイラは "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
于 2010-06-10T14:34:31.093 に答える
2

Option Inferこのコンパイラ機能を制御するものです。どちらも同等です。これは、varキーワードを使用するかどうかについての (無意味な) C# の議論に似ています。個々の開発者に任せるのが 2 セントですが、多くの人は慣習を確立してそれに従うように言うでしょう。

于 2010-06-10T14:34:36.087 に答える
2

私はそうしますDim x As New Exception("this is a test")。両方の長所があり、推論はありませんが、入力する必要があるのはException1回だけです:)

于 2010-06-10T14:37:53.397 に答える
0

最初のもの (変数型宣言を使用) が最も安全に使用できると思います。プログラムが小さい場合、実際には違いはありませんが、より大きなプログラムの場合、顕著なコンパイラの遅延が発生する可能性があります. したがって、(私の意見では) 型を宣言するのが最善の方法です。

于 2010-06-10T14:47:18.403 に答える