重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

約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 文を書けばいいじゃないか?」と思います。

この辺りの事情が判りません。

私の推測は、次のようです。

・インポート文は名前空間やクラスに置換されるとは限らない。
・置換は全体のテキストをチェックした後に必要な限りで行われる。

しかし、真相は不明。
自分なりのスタイルとか作法とかを確立する上で多少喉に刺が刺さった感があります。
この疑問の解消に手を貸して頂ければ幸いです。

A 回答 (1件)

クラスを指定するときに、いちいち完全修飾名で記述するのは煩雑だと感じるならImportsステートメントを利用すればいいと思いますし、


どの名前空間に属するクラスなのかを明示することに重きを置くなら完全修飾名を利用すればいいのではないでしょうか。
Importsステートメント自体は、完全修飾名を省略できるようにしたり、名前空間に別名をつけたりする機能に過ぎないので、あとは好みの問題だと思います。

exeのサイズに関しては、完全修飾名で記述しようがインポートして直接クラス名を記述しようが、ビルドしてしまえばまったく同じ実行ファイルができそうな気がします。これは推測ですが。
    • good
    • 0
この回答へのお礼

>Importsステートメント自体は、完全修飾名を省略できるようにしたり、名前空間に別名をつけたりする機能に過ぎないので、あとは好みの問題だと思います。

ここんところが今一つ納得いきません。
事実上、そのようになっているとは思いますが・・・。

コンパイルの前処理との関係で、どうにも今一つスッキリしません。

ありがとうございました。

お礼日時:2009/03/06 20:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!