Option Strict On [VB]

先頭行に Option Strict On を追加しよう

プログラムの先頭行に Option Strict On を追加すると、型の異なった数値の型に代入する演算をすると、エラーになることがあります。

たとえば、整数と実数の演算結果を整数型変数に代入する演算は、構文エラー(ソースリストに波線が付く)になり、プログラムを実行することができません。

Option Strict On

実数を整数変数に代入するとエラー

コメントの書き方
文字列の改行
次行継続文字
Const 定数の宣言
型文字 $ %& !#@
標準数値書式
カスタム数値書式
Option Strict On
ビルドエラーの修正

Option Strict On を先頭行に追加して、簡単なプログラムを作成して勉強します。

次の例では、1.25 + 2 の計算結果を整数変数に代入しているので、エラーになります。これは、1 + 1.25 の演算結果 2.25の実数になりますが、演算結果を整数変数に代入したので、小数部分を整数変数に代入することができず、エラーになります。

もし、Option Strict を書かないと、データの一部が代入できない可能性がある変換(縮小変換)を自動的に行い、データの一部が欠落する場合があります。その結果、誤差を含んだまま演算することになります。

上の例のように、Option Strict On にすれば、構文エラーになり、暗黙の縮小変換はできません。業務用のプログラムを作成するときは、Option Strict On にするのが普通です。

Option Strict On

Module Module1

  Sub Main()
     Dim anser As Double = 0.0
     Dim real As Double = 1.25

     anser = real + 2
  End Sub

End Module

逆に、変換した後のデータが、すべて収まるデータ型に変換することを、拡大変換といいます。拡大変換の場合は、データが失われることはありません。

したがって、Option Strict On にしていても、たとえば、整数値を実数型変数への代入のケースでは、エラーになりません。

【注意】数値を記述すときに、ひとつ注意することがあります。0 や 1 と書けば整数、0.0 や 1.0 のように、整数に小数点を付けて書けば実数になります。

次の例では、1 + 2.0 の演算結果は実数なので、整数変数に代入するとエラーになります。1 + 2 と書けば、整数演算になるのでエラーにはなりません。

Option Strict On