.NET TIPS

VB.NETでクラス名を省略してメソッドや定数を利用するには?

デジタルアドバンテージ
2004/01/09

 通常Visual Basic .NET(以下VB.NET)では、Importsステートメントで名前空間を指定することにより、コード内では名前空間部分を省略したクラスを記述することができる。

 次のサンプル・プログラムは、System名前空間をImportsステートメントで指定している。このため、「System.Console.WriteLine」や「System.Math.PI」は、名前空間部分の「System」を省いて「Console.WriteLine」、「Math.PI」と記述できる。

' imports1.vb

Imports System

Class NameSpaceImports
  Shared Sub Main()
    Console.WriteLine("通常のメソッド呼び出し")
    ' 出力:通常のメソッド呼び出し

    Console.WriteLine("π = {0}", Math.PI)
    ' 出力:π = 3.14159265358979
  End Sub
End Class

' コンパイル方法:vbc imports1.vb
Importsステートメントで名前空間を参照しているサンプル・プログラム(imports1.vb)

 名前空間を指定するこのような機能に加えて、Importsステートメントではクラス名を指定することもできる。これにより、指定したクラスに含まれるメソッドや定数などを、クラス名を省いた形で記述できる。

 次のサンプル・プログラムでは、System.Consoleクラス(これは名前空間まで含めたクラスのフルネーム)とSystem.MathクラスをImportsステートメントにより指定している。このため、WriteLineメソッドや定数「PI」を、クラス名を付けずに記述できる。

' imports2.vb

Imports System.Console
Imports System.Math

Class ClassImports
  Shared Sub Main()
    WriteLine("クラス名を省略して呼び出し")
    ' 出力:クラス名を省略して呼び出し

    WriteLine("π = {0}", PI)
    ' 出力:π = 3.14159265358979
  End Sub
End Class

' コンパイル方法:vbc imports2.vb
Importsステートメントでクラスを参照しているサンプル・プログラム(imports2.vb)

 ただし名前空間の参照と同様に、同じ名前のメソッドを含んでいる2つ以上のクラスをImportsステートメントで指定した場合、そのメソッド名だけを記述すると、どのクラスのメソッドかを特定できずにコンパイルはエラーとなる。例えば、上記のサンプル・プログラムに「Imports System.IO.TextWriter」の1行を追加すると、System.IO.TextWriterクラスにもWriteLineメソッドが含まれているため、System.ConsoleクラスとSystem.IO.TextWriterクラスのどちらのWriteLineメソッドなのかを特定できずにコンパイル・エラーとなる。

 なお、Publicなモジュール内(Moduleステートメント)で定義されているメソッドや定数も、その名前空間をImports文で指定するだけで利用できる。VB.NETのMid関数やMsgBox関数、vbCrLf定数などが直接記述できるのはこのためだ(これらを含んでいるMicrosoft.VisualBasic名前空間はVisual Studio .NETではデフォルトで参照されている)。End of Article

カテゴリ:Visual Basic .NET 処理対象:ステートメント
使用ライブラリ:Consoleクラス(System名前空間)
使用ライブラリ:Mathクラス(System名前空間)
 
この記事と関連性の高い別の.NET TIPS
VB.NETのモジュールの正体は?
長いジェネリック・クラスの名前を短く記述するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH