- 締切済み
Imports 文についての疑問!(VB2008)
約40日余りのVB.NET 初学者です。 そこで、この間の学習で疑問に思った諸点について質問します。 疑問: Imports 文についての疑問! Imports System.Windows.Forms ' ================================================== ' グラフィックス・メソッドで "hello, world" と描画 ' ================================================== Public Class frmMain Private Sub frmMain_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles Me.Paint Dim msg As String = "hello, world" Dim aFont As New Font("Arial", 12) e.Graphics.DrawString(msg, aFont, Brushes.Black, 0, 0) End Sub End Class Imports 文でインポートした場合の EXE は 16384 バイト。 e As System.Windows.Forms.PaintEventArgs と書いても EXE は 16384 バイト。 「ならば、Imports 文を書けばいいじゃないか?」と思います。 この辺りの事情が判りません。 私の推測は、次のようです。 ・インポート文は名前空間やクラスに置換されるとは限らない。 ・置換は全体のテキストをチェックした後に必要な限りで行われる。 しかし、真相は不明。 自分なりのスタイルとか作法とかを確立する上で多少喉に刺が刺さった感があります。 この疑問の解消に手を貸して頂ければ幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yaguma
- ベストアンサー率57% (4/7)
クラスを指定するときに、いちいち完全修飾名で記述するのは煩雑だと感じるならImportsステートメントを利用すればいいと思いますし、 どの名前空間に属するクラスなのかを明示することに重きを置くなら完全修飾名を利用すればいいのではないでしょうか。 Importsステートメント自体は、完全修飾名を省略できるようにしたり、名前空間に別名をつけたりする機能に過ぎないので、あとは好みの問題だと思います。 exeのサイズに関しては、完全修飾名で記述しようがインポートして直接クラス名を記述しようが、ビルドしてしまえばまったく同じ実行ファイルができそうな気がします。これは推測ですが。
お礼
>Importsステートメント自体は、完全修飾名を省略できるようにしたり、名前空間に別名をつけたりする機能に過ぎないので、あとは好みの問題だと思います。 ここんところが今一つ納得いきません。 事実上、そのようになっているとは思いますが・・・。 コンパイルの前処理との関係で、どうにも今一つスッキリしません。 ありがとうございました。