Visual Basic を触っていたら、そのうち出会うであろうモノ、それが「Option Strict」。すでにいろんなところで話題になっているので興味ある方は検索しまくってください。とはいえ、このブログもVisual Basic なお話をメインに触っているわけで書かざるを得ない気がしたので書きます。
とりあえずMSDNではこちら。
MSDN:Option Strict ステートメント(http://msdn2.microsoft.com/ja-jp/library/zcd4xwzs(VS.80).aspx)より。
暗黙的なデータ型変換を拡大変換だけに制限します。
リンク先を見ていただければ、どんなオプションなのか、規定では Off なんだよ~とか、コンパイラ オプションにあるよ~とか、Visual Studio からの設定方法だとか、おおよそ分かると思います。
さて、この Option Strict、話題になると常々言われることがあるんです。それは
なんで規定では Off なんだよ!?
ってことは Off だといろいろ問題があるのか?って思いますよね。ということで、難しいことは抜きにして Option Strict Off での困ったことをコードとしてあげてみます。これで「やばくね?」って分かってもらえれば幸いです。
Option Strict Off
Imports System
Public Class Program
Public Shared Sub Main()
Dim a, b, c, d, e
b = True
c = "31" - "1"
d = 1.5
e = Nothing
a = b + c + d + e
Console.WriteLine(a)
End Sub
End Class
・・・なににつっこんでいいのか分かりません。私のおバカな頭でもなんだかおかしいのは分かります。でもこれ、コンパイルエラーになりませんね。ちなみに実行してもエラーになりません。出力はどうなると思いますか?(ぱっと見で正解ならそれはそれですごいですw)
いくら甘やかしてくれている Visual Basic かぁさんでも Option Strict On ではこのコードは怒られます。つまり Option Strict は
かぁさん、ちょっとキビしいモード?
Visual Basic かぁさんのちょっときびしいしつけ、後々いいことがあるかもしれませんね。