2018年1月27日土曜日

VB.net で開発するときは Option Strict On で

VB.NET で開発を行う場合、Option Strict は On にしましょう。



※これは2013年に書いたものです。

今だに「Option Strict って何ですか?」と返ってくることありますが、コンパイラに対して暗黙的な型変換を許可するかどうかを指定するものです。On の場合は暗黙的な型変換を許可しなくなります。Integer 型の値が求められている場面で String 型の値を指定している場合はコンパイルエラーになります。コンパイルエラーを回避するには、String 型から Integer 型に変換するコーディングを明示的に行う必要があります。実行時の型変換エラーのリスクを減らすための重要な設定です。実行時に暗黙の型変換が発生しなくなるため、実行速度が上がるというメリットもあります。

Visual Studio 2012 では、このオプションはプロジェクトのプロパティのコンパイルのタブにあります。また、Visual Studio のツール → オプション → プロジェクトおよびソリューション → Visual Basic の既定値 で新規プロジェクトを追加するときの既定値を設定することができます。VB6 以前との互換性を重視したためか、既定値は Off になっています。これらのオプションは On することを強く推奨します。
もし仮にどうしても Option Strict = On ではコーディングしづらい処理がある場合は、そのソースファイルの冒頭に Option Strict Off と記述すればそのファイルのみ Off が適用されます。


「郷に入りては郷に従え」

.NET Framework はオブジェクト指向を強く意識しています。標準ライブラリでは多くの型が提供されており、これらの型を組み合わせて処理を実装していくプログラミングスタイルが想定されています。当然ですが、型を間違えればアプリケーションは正しく動作しません。VB6 以前に比べて型の数は増えています。開発プロジェクトでも独自の型を定義することが多くなっていることから、型の数は比べ物にならないと言っていいと思います。型の数が増えれば、型を間違える可能性も高くなると思います。

このような背景にあって、型を厳格にチェックしてくれる Option Strict は非常に有効なものです。コンパイルが通りにくくなる足枷ではなく、型の誤りを見つけてくれるセーフティネットとして考えれば、煩わしさも気にならなくなるのではないでしょうか。私は煩わしいと思うどころか、Option Strict = Off では型を間違えていないか心配でしょうがないです。目視チェックに余計に時間と集中力を使うことになって、かえって効率が落ちます。

慣れた VB と同じ感覚のままで開発したいというのも分かりますが、.NET Framework という「郷」に従ってみませんか?

0 件のコメント:

コメントを投稿

paiza のスキルチェックをやってみました

いまさら感はありますが、 paiza のスキルチェックをやってみました。指定された時間内にコードを書いてユニットテストにかけ、その結果を基に評価を数値化してくれるというものですが、ゲーム感覚で空き時間を見つけて進めていこうと考えています。 どうやら時間が短いほど高い評価を得...