1.Option Strict ステートメント
異なる型のキャストをできないように設定します。
Visual Basic では、さまざまなデータ型を他のデータ型に変換できます。変換元のデータ型より変換先のデータ型の方が精度が低い場合、または容量が小さい場合は、データが失われる可能性があります。このような縮小変換が失敗した場合は、ランタイム エラーが発生します。Option Strict を使用すると、ランタイム エラーを回避できるように、このような縮小変換に対してコンパイル時に通知が出されます。
例えば、下記のソースコードがあります。
Private Sub Test() Dim x As Integer = 1 Dim y As String = "sss" x = y End Sub
上記のソースコードは、Option Strict を Off に設定する場合、コンパイル通れる、On に設定する場合、コンパイルエラーが発生します。
2.Option Explicit ステートメント
ファイル内に Option Explicit を記述したときは、すべての変数を Dim ステートメントまたは ReDim ステートメントで明示的に宣言する必要があります。宣言されていない変数名を使用すると、コンパイル時にエラーが発生します。
Option Explicit ステートメントを使用すると、既存の変数名を誤って入力したり、変数のスコープが明確でないコード内で混乱が起きたりするのを避けることができます。Option Explicit ステートメントを使用しない場合、宣言されていない変数はすべて Object 型になります。
Private Sub Test() x = 1 End Sub
上記のソースコードは、Option Strict を Off に設定する場合、コンパイル通れる、On に設定する場合、コンパイルエラーが発生します。
3.Option Infer ステートメント
Option Infer を On に設定すると、明示的にデータ型を指定せずに変数を宣言できます。コンパイラは変数のデータ型を初期化式の型から推論します。
Private Sub Test() Dim someVar = 2 End Sub
Option Infer と Option Strict を無効にすると、Dim someVar = 2 宣言内の変数は、オブジェクトとしてのみ識別されます。Option Infer を On に設定すると、コンパイラは、someVar をInteger として識別します。