VB.NETでインターフェイスを実装する

一年か二年はどのような違いをもたらすことができます。 二年半前、私はVisual Basic7Unleashed for Samsというタイトルの本を書いていると思っていました。 Sams Visual Basic.NET Unleashedの最終ドラフトを完了すると、Visual Basicで多くのことが変更されたことが思い出されます。

あなたができるだけ完全かつ完全に移行を行うのを助けるために、私と他の著者と貢献者は、スレッド、リフレクション、アセンブリ、COM相互運用、およ しかし、最近友人とプログラミングの科目を見直し、私は上級レベルだけでなく、すべてのレベルで開発者がいることを思い出しました。 できるだけ徹底的にするために、私は高度なトピックだけでなく、非高度なトピックを模索しています。 (私は読者からの問い合わせも歓迎し、いくつかのクエリに基づいて記事を書くこともあります。)

この記事はポイントになります。 この記事では、インターフェイスを定義する方法と実装する方法について説明します。

インターフェイスの考え方はCOMにとって新しいものではありませんが、Visual Basic6ではすべてのクラスがCOMインターフェイスでした。 Visual Basicで。NETすべてのクラスはクラスであり、インターフェイスはインターフェイスですが、COMインターフェイスではありません。 クラスは何十年も存在しており、インターフェイスはCOMの唯一の範囲ではありません。 クラスは、型が持つフィールド、プロパティ、イベント、およびメソッドを記述します。 インターフェイスは、ポータルや添付ファイルのようなものです。 インターフェイスは、型がこれらの特定のメソッドを実装すると言いますが、型が何であるかを定義しません。 たとえば、家は窓を持つことができますが、車もそうです。 メソッドopenを実装する型は、ウィンドウを持つものとして定義することができますが、型は車、ボート、家、または魂を定義することができます。

Visual Basic6では、構造体のオブジェクト指向の意味での継承またはクラスはサポートされていません。 VB6はCOMインターフェイスをサポートしています。 VB.NETは、他のクラスとインターフェイスをサポートしているため、二つのイディオムの間で区別する必要がありました。

VB.NETでのクラスとインターフェイスの定義

クラスとインターフェイスのイディオムは、それらを定義するときに非常によく似た構文を使用します。 次の例では、VB.NETで空のクラスを定義し、その後に空のインターフェイスを定義します。

Public Class AClassEnd ClassPublic Interface AnInterfaceEnd Interface

クラスには、フィールド、プロパティ、イベント、およびメソッドを含めることができます。 クラスのこれらの要素は、membersと呼ばれ、public、private、protected、またはfriendであることを示す修飾子を持つことができます。 インターフェイス宣言のすべてのメンバーはpublicであり、その結果、アクセス修飾子を必要とせず、アクセス修飾子を持つこともできません。

クラスにはコードが含まれていますが、インターフェイスにはコードが含まれていません。 ただし、インターフェイスを実装するクラスにはコードが含まれています。 Vb.NETにはインターフェイスのインスタンスがないことに注意してください。 すべてのインスタンスは、インターフェイスを実装する型ですが、それ自体はインターフェイスのインスタンスではありません。 (この時点から、クラスの議論は別の時間のために残し、インターフェイスにのみ焦点を当てます。)

インターフェイスの実装

AnInterfaceという名前のインターフェイスがあると仮定すると、そのインターフェイスにメソッド宣言のみを追加できます。 インターフェイスを拡張する前のセクションから、WhoAmIという名前のメソッドを追加できます。 次に結果が表示されます。

Public Interface AnInterface Function WhoAmI() As StringEnd Interface

AnInterfaceインターフェイスを実装するすべての型は、そのインターフェイス内のすべての宣言されたメソッドを実装する必要があります。 この例では、関数WhoAmIのみを実装する必要があります。 AClassがAnInterfaceを実装していると仮定します。WhoAmIを実装する必要があります。 AClassにAnInterfaceを実装した結果、次のコードが生成されます。

Public Class AClass Implements AnInterface Public Function WhoAmI() As String Implements AnInterface.WhoAmI Return "AClass" End FunctionEnd Class

最初にしなければならないことは、名前でインターフェイスを実装したいことを示すことです。 Implements AnInterfaceは、AClassがAnInterfaceで説明されているすべてのメソッドを実装することを消費者に伝えます。 (Visual Studio.NET IDEは、私たちもそうしなければならないことを思い出させます。)

VB6とVBの違い。NETは、リストに示すように、関数本体にImplements句を追加する必要があるということです。 関数は通常として宣言されていますが、この句はAnInterfaceを実装しています。WhoAmIは、クラスとインターフェイスの間の契約を完了します。

VB.NET あまりにも。 また、プロシージャヘッダーの最後にImplements句を使用してインターフェイスで定義されたすべてのメソッドを実装して、特定のメソッドが特定のインターフェー

インターフェイスは非常に短くても非常に長くてもかまいません。 インターフェイスによって記述されるメソッドは、サブルーチンまたは関数にすることができ、必要に応じて精巧または単純にすることができます。 一つのメソッドは、複数のinterfacesメソッドを実装できます。 最後に、インターフェイスメソッドは、オブジェクトへの参照またはインターフェイスへの参照を使用して呼び出すことができます。

著者について

ポールKimmelはフリーランス-ライターのためのであるDeveloper.com とCodeGuru.com.2002年の月に利用可能な彼の今後の本Visual Basic.Net UnleashedでクールなVisual Basic.Netのトピックを探してください。

PaulはSoftware Conceptions,Inc.を設立しました。 1990年。 ヘルプの建物のためのポールKimmelに連絡してくださVB.NET アプリケーションまたはVB6アプリケーションを.NETに移行する.

# # #

Write a Comment

メールアドレスが公開されることはありません。