VB.NET言語セクション(2)

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 として識別します。