TL;DR
Option Strict
実行時にコードをコンパイルして失敗するのではなく、設計時に潜在的なエラーや実際のエラーを検出するのにOption Explicit
役立ちます。両方を切り替える必要があります。 On
Option Strict と Option Explicit はデフォルトでオフになっています。それらをオンにするには:
オプション厳密
Tools -> Options -> Projects and Solutions -> VB defaults -> Option Strict
。に設定しOn
ます。
オプション明示的
Tools -> Options -> Editor -> Require Variable Declaration
。それをチェックしてください。
オプション明示
Option Explicit Offを使用すると、変数を使用する前に変数を宣言 (Dim) する必要はありません。
a = 123 'a is automatically declared as an Integer
これは、ある場所で変数を宣言し、後でそれを使用すると思ってタイプミスをした場合に危険です。
Dim counter As Integer = 0
'some lines later...
countr = 55 'This creates a new variable called countr
さらに悪いことに、スコープ内にあると思われる変数に値を割り当てますが、そうではなく、同じ名前でスコープが異なる新しい変数を宣言することになります。
多くのコードや長いメソッドを使用すると、これらは見逃しやすいため、この種の問題を防ぐために常に有効にする必要があります。
オプション厳密
Option Strict Offを使用すると、エラーなしで暗黙的にデータ型を縮小型に変換できます。
Dim d As Double = 999.99
Dim s As Single = d 'No error with Option Strict Off
このような場合、Option Strict は、double 値が を超えないようにするための開発者への警告として機能しますSingle.MaxValue
。
Enum をエラーなしで間違った値に割り当てることもできます。以下は、この実際の例です。

変数は (24) に設定されているはずですがEOpticalCalStates.FAILED
、実際には State が に相当する 4 の値に設定されEOpticalCalStates.ALI_HOR
ます。
このようなものは簡単には見つかりません。
したがって、常にデフォルトで Option Strict をオンにする必要があります。この設定はデフォルトでオンに設定されているはずですが、Microsoft は下位互換性を高めるためにオフのままにすることにしました (後から考えると、これは IMO の間違いでした)。
新しいプロジェクトのデフォルトを設定する前にプロジェクトを開始した場合は、次を使用する必要があります。
「Project」メニュー→「Properties...」項目→「Compile」タブ→「Option strict」を「On」に設定します。