|
.NET TIPS
My機能を拡張して独自の機能を追加するには?[VS 2008、VB]
デジタルアドバンテージ 一色 政彦
2008/12/18 |
|
|
My機能はVisual Basic 2005で導入された機能だが、Visual Basic 2008ではこれがさらに強化され、My機能を拡張して独自のプロパティなどを追加できるようになっている。これにより、「よく使う機能をMy機能にまとめて日々のコーディング作業を楽にする」といったMy機能の活用が実現可能だ。本TIPSでは、このようなMy機能の拡張方法について、まずは基本的な手法を紹介する。
My機能に独自の機能を追加する方法(プロパティ編)
ここではサンプルとして、「My.Atmarkit.Saying.Hello」というMy機能のプロパティを追加してみよう。この場合、「Hello」がプロパティで、それより前の「My.Atmarkit.Saying」が名前空間である。これを呼び出すと、“Hello My.Atmarkit !”という文字列を返すものとする。
以上の内容をコードで表現すると次のようになる。
Namespace My.Atmarkit.Saying
<Global.Microsoft.VisualBasic.HideModuleName()> _
Friend Module SayingModule
ReadOnly Property Hello() As String
Get
Return "Hello My.Atmarkit !"
End Get
End Property
End Module
End Namespace |
|
My.Atmarkit.Saying.Helloプロパティの実装 |
上記のコードでは「My.Atmarkit.Saying」という名前空間と「Hello」というプロパティが実装されている。これはモジュールとして記述する必要がある。上記のコードでは「SayingModule」という名前のモジュールを実装している。
このモジュールに対して「<Global.Microsoft.VisualBasic.HideModuleName()>」という属性が指定されているが、これは、このモジュールをIntelliSenseに表示させたくないからだ。この属性を指定しない場合、My機能としての「My.Atmarkit.Saying.Hello」に加えて、モジュールとしての「My.Atmarkit.Saying.SayingModule.Hello」という項目までもがIntelliSenseに表示されてしまう。(そうならないためにも)My機能を拡張する場合は、この属性は必ず指定した方がよい。
以上で独自のMy機能の実装は完了だ。実際に「My.Atmarkit.Saying.Hello」というMy機能が、次の画面のようにIntelliSenseでも利用できる。
|
IntelliSenseに表示された独自のMy機能 |
My機能に独自の機能を追加する方法(メソッド編)
上記の例はプロパティだが、メソッドも同様に追加できる。次のコードは「Hello」をプロパティからメソッドに変更した例だ。
Namespace My.Atmarkit.Saying
<Global.Microsoft.VisualBasic.HideModuleName()> _
Friend Module SayingModule
Function Hello() As String
Return "Hello My.Atmarkit !"
End Function
End Module
End Namespace |
|
My.Atmarkit.Saying.Helloメソッドの実装 |
当然ながら、このMy機能のメソッドは、
My.Atmarkit.Saying.Hello()
のように、メソッドとして呼び出す。
なお、本稿で示した範囲の拡張方法はVisual Basic 2005でも利用可能である。
カテゴリ:Visual Basic 2008 処理対象:My機能 |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間