次の方法で共有


Visual Basic でのコンポーネント

Visual Basic でのサンプル文字列コンポーネントの完全なソース コードを次に示します。

リスト 1. Visual Basic でのコンポーネント (CompVB.vb)

Option Explicit
Option Strict

Imports System

Namespace CompVB

   Public Class StringComponent

      Private StringSet(3) As String

      Public Sub New()
         MyBase.New
         StringSet(0) = "Visual Basic String 0"
         StringSet(1) = "Visual Basic String 1"
         StringSet(2) = "Visual Basic String 2"
         StringSet(3) = "Visual Basic String 3"
      End Sub

      Public Function GetString(ByVal index as Integer) 
         As String
         If ((index < 0) or (index >= Count)) then
            throw new IndexOutOfRangeException
         End If
         GetString = StringSet(index)
      End Function

      ReadOnly Property Count() As Long
         Get
            Count = StringSet.Length
         End Get
      End Property

   End Class

End Namespace

C++ マネージ拡張や Visual C# の場合と同様に、名前空間とクラス名の両方がコードで指定されています。

このコードでは、変数の型を明示的または暗黙的のどちらの方法で変換するかを制御する新しい Option Strict ステートメントも取り入れています。暗黙の型変換は、特別な構文を使用しなくても実行できます。これに対して、明示的な型変換は、キャスト演算子を使用して行う必要があります。このオプションをオンにすると、たとえば Integer から Double への変換のような、拡大変換だけを暗黙的に行うことができます。Option Strict 機能は、/optionstrict+ コンパイラ スイッチを使用して、コンパイル時にアクティブにすることもできます。

Visual Basic では、他の言語とは異なり、クラス コンストラクタの名前は、クラスの名前ではなく New という名前になります。コンストラクタは値を返さないため、Visual Basic のコンストラクタは Function としてではなく Sub として実装されます。

Public Sub New()
...
End Sub

また、次のステートメントにも注意してください。

MyBase.New

このステートメントは必須で、基本クラス コンストラクタを呼び出します。C++ マネージ拡張および Visual C# では、基本クラス コンストラクタへの呼び出しは、それぞれのコンパイラによって自動的に生成されます。

整数を受け取って文字列を返す GetString メソッドを次に示します。Visual Basic では、値を返すサブルーチンを関数と呼びます。

Public Function GetString(ByVal index as Integer) 
      As String
   If ((index < 0) or (index >= Count)) then
      throw new IndexOutOfRangeException
   End If
   GetString = StringSet(index)
End Function

GetString メソッド内の throw ステートメントは、新しいランタイム ベースの例外処理を示しています。

throw new IndexOutOfRangeException

このステートメントは、IndexOutOfRangeException 型の新しいオブジェクトを作成してスローします。

**メモ   **Visual Basic ランタイムの以前のバージョンは、Err を実装していました。

最後に、読み取り専用の Count プロパティを次のように作成します。

ReadOnly Property Count() As Long
   Get
      Count = StringSet.Length
   End Get
End Property

コマンド ラインからのビルドは非常に簡単です。唯一の変更点は、次に示すように、相対位置を示す ..\Bin サブディレクトリにコンポーネントを書き込むことだけです。

vbc.exe /t:library /debug+ /optionstrict+  /out:..\bin\CompVB.dll CompVB.vb

参照

単純なコンポーネントのクライアント | 開発チュートリアルのまとめ | 付録 A: 名前空間を検索するためのツール