先頭行に 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 と書けば、整数演算になるのでエラーにはなりません。