コンパイラ・オプション

 コンパイラ・オプションを指定することで、記述したプログラムの中で変数が宣言されているかどうか、正しくデータ型の変換が行なわれているか、文字列をどのように比較するかなど、コンパイルの仕方を指定することができます。次のように指定することができます。

■ プログラムで指定する

 ソースファイルの先頭で指定します。

オプションをプログラムで指定
オプションをプログラムで指定

■ プロジェクトで指定する

 プロジェクトのプロパティで指定できます。プロジェクトのプロパティは次のように開きます。ソリューション エクスプローラーのプロジェクト名を右クリックして、表示されるメニューから「プロパティ(R)」をクリックします。

プロパティをクリック
プロパティをクリック

 下の図のようなプロパティの画面の「コンパイル」をクリックし、表示される画面の「コンパイル オプション」で設定ができます。

プロパティの画面
プロパティの画面

 コンパイラ・オプションには次のようなものがあります。

■ Option Explicitステートメント

 変数の宣言を強制するか、宣言しなくても使用できるかを指定します。

Option Explicitの書式
Option Explicit On
Option Explicit Off

 ● On

 変数の宣言を強制します。On/Offを指定しない場合はOnとなります。

 次のように変数を宣言せずに使用すると、エラーが表示されます。

Explicit Onの場合
Explicit Onの場合

 ● Off

 変数の宣言を強制しません。

 次のように変数を宣言せずに使用しても、エラーとなりません。

Explicit Offの場合
Explicit Offの場合

■ Option Strictステートメント

 暗黙的なデータ型変換を禁止、もしくは許可するかどうかを指定します。

Option Strictの書式
Option Strict On
Option Strict Off

 ● On

 暗黙的なデータ型変換を禁止します。次のような時エラーとなります。

 次のように整数型の変数に実数(小数を持つ数値)を代入すると、エラーが表示されます。(整数型では小数部分が表現できずに情報が失われるため)

Strict Onの場合
Strict Onの場合

 ● Off

 暗黙的なデータ型変換を許可します。On/Offを指定しない場合はOffとなります。

 次のように整数型の変数に実数を代入しても、エラーは表示されません。

Strict Offの場合
Strict Offの場合

■ Option Compareステートメント

 文字列を比較するときの方法を指定します。

Option Compareの書式
Option Compare Binary
Option Compare Text

 ● Binary

 文字のバイナリ表現による並べ替え順序に基づいて文字列を比較します。

○ プロジェクト

 次のようにプロジェクトを作成してください。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 CompareTest1

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. Option Compare Binary
  2. Module Module1
  3.  Sub Main()
  4.   'Aとaが同じかどうかを比較
  5.   If "A" = "a" Then     '同じ場合
  6.    Console.WriteLine("2つの文字は同じと判断されます。")
  7.   Else
  8.    Console.WriteLine("2つの文字は違うと判断されます。")
  9.   End If
  10.   Console.ReadLine()
  11.  End Sub
  12. End Module

○ 実行結果

2つの文字は違うと判断されます。

○ 解説

 1行目で文字列の比較方法をBinaryとしているので、大文字と小文字を区別して比較します。その為、大文字の「A」と小文字の「a」は違う文字として判断されます。

 ● Text

 大文字と小文字を区別しない、システムで決められた並べ替え順序に基づいて比較します。

○ プロジェクト

次のようにプロジェクトを作成してください。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 CompareTest2

サンプルダウンロード

○ プログラム

 ComapreTest1をコピーして、次のようにプロジェクトを作成してください。

  1. Option Compare Text
  2. Module Module1
  3.  Sub Main()
  4.   'Aとaが同じかどうかを比較
  5.   If "A" = "a" Then     '同じ場合
  6.    Console.WriteLine("2つの文字は同じと判断されます。")
  7.   Else
  8.    Console.WriteLine("2つの文字は違うと判断されます。")
  9.   End If
  10.   Console.ReadLine()
  11.  End Sub
  12. End Module

○ 実行結果

2つの文字は同じと判断されます。

○ 解説

 1行目で文字列の比較方法をTextとしているので、大文字と小文字を区別しません。その為、大文字のAと小文字のaは同じ文字として判断されます。

■ Option Inferステートメント

 変数の宣言に対してプログラム中でデータ型を推論させるかどうかを指定します。

Option Inferの書式
Option Infer On
Option Infer Off

 ● On

 データ型の推論を有効にします。

 次のようにデータ型を指定せずに変数に代入すると、変数のデータ型が推論されます。(変数にマウスカーソルを当てると表示されるメッセージに注目)

Infer Onの場合
Infer Onの場合

 ● Off

 データ型の推論を無効にします。

 次のようにデータ型を指定せずに変数に代入すると、変数のデータ型が推論されません。(変数にマウスカーソルを当てると表示されるメッセージに注目)

Infer Offの場合
Infer Offの場合

前へ   次へ