.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でも利用可能である。End of Article

カテゴリ:Visual Basic 2008 処理対象:My機能

この記事と関連性の高い別の.NET TIPS
既存のMy機能のオブジェクトを拡張するには?
C#からVBのMy機能を利用するには?
My拡張をパッケージ化して再利用するには?
My拡張パッケージを配布するには?
進行状況を表示しながらディレクトリやファイルをコピー/移動/削除するには?(My機能活用)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間