Option Strict ステートメント

更新 : 2008 年 7 月

暗黙的なデータ型変換を拡大変換だけに制限します。

Option Strict { On | Off }

指定項目

  • On
    省略可能です。Option Strict のチェックを有効にします。

  • Off
    省略可能です。Option Strict のチェックを無効にします。On または Off を指定しない場合は、既定で Off になります。

解説

Option Strict ステートメントを使用する場合は、ファイル内で他のどのソース コード ステートメントよりも先に定義する必要があります。

Visual Basic では、さまざまなデータ型を他のデータ型に変換できます。変換元のデータ型より変換先のデータ型の方が精度が低い場合、または容量が小さい場合は、データが失われる可能性があります。このような縮小変換が失敗した場合は、ランタイム エラーが発生します。Option Strict を使用すると、ランタイム エラーを回避できるように、このような縮小変換に対してコンパイル時に通知が出されます。

zcd4xwzs.alert_note(ja-jp,VS.90).gifメモ :

For Each…Next コレクション内の要素からループ制御変数への変換に対して縮小変換エラーが抑制されます。詳細および例については、「For Each...Next ステートメント (Visual Basic)」の「縮小変換」セクションを参照してください。

Option Strict は暗黙の縮小変換を許可しないだけでなく、遅延バインディングのエラーも生成します。Object 型として宣言された変数に代入されるオブジェクトは、遅延バインディングされます。

Option Strict On によって厳密な型指定が可能になり、データの損失を伴う意図しない型変換を回避でき、遅延バインディングが禁止されて、パフォーマンスが改善されるので、必ず使用することをお勧めします。

zcd4xwzs.alert_note(ja-jp,VS.90).gifメモ :

コードに Option Strict を指定しなければ、コンパイラは既定で Option Strict Off になります。

Option Strict は、Visual Studio の統合開発環境 (IDE) またはコマンド ラインからでも設定できます。

zcd4xwzs.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、ヘルプの記載と異なるダイアログ ボックスやメニュー コマンドが表示される場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

IDE で Option Strict を設定するには

  1. [ツール] メニューの [オプション] をクリックします。

  2. [プロジェクトおよびソリューション] ノードを開きます。

  3. [Visual Basic の既定値] を選択します。

  4. [Option Strict] の設定を変更します。

コマンド ラインで Option Strict を設定するには

  • vbc コマンドに /optionstrict コンパイラ オプションを指定します。

使用例

次の例は、Option Strict ステートメントによって、遅延バインディングおよびデータが損失する変換を回避する方法を示します。

Option Strict On
Dim thisVar As Integer
Dim thisObj As Object = New widget
thisVar = 1000   ' Declared variable does not generate error.
' Attempting to convert Double to Integer generates a COMPILER ERROR.
thisVar = 1234567890.9876542 ' causes ERROR
' Late-bound call generates a COMPILER ERROR.
Call thisObj.Method1() ' causes ERROR

参照

概念

拡大変換と縮小変換

参照

Option Compare ステートメント

Option Explicit ステートメント (Visual Basic)

/optioncompare

/optionexplicit

/optionstrict

[Visual Basic の既定値] ([オプション] ダイアログ ボックス - [プロジェクト])

履歴の変更

日付

履歴

理由

2008 年 7 月

縮小変換および For Each…Next に関する説明を追加。

カスタマ フィードバック