モジュール メソッドからのExtends構文を使用して、クラス インターフェイスを拡張します。クラス インターフェイスを使用する必要はありますが、この方法では、複数のクラス間で複製する代わりに、すべての共通コードをモジュールに配置できます。
Interface FooInterface
Sub Foo()
End Interface
Class Foo
Implements FooInterface
Sub Foo()
MsgBox("Foo!")
End Sub
End Class
Class Bar
Implements FooInterface
Sub Foo()
MsgBox("Bar!")
End Sub
End Class
Module FooExtensions
Sub Foobar(Extends FooImplementor As FooInterface)
MsgBox("Foobar!")
End Sub
End Module
上記の FooBar メソッドは、FooInterface クラス インターフェイスを実装する任意のクラスのクラス メソッドのように呼び出されます。
Dim myfoo As FooInterface = New Bar
myfoo.Foobar()
拡張メソッドは、指定されたクラスがインターフェイスを満たすかどうかをコンパイラが判断するときにカウントされないことに注意してください。
ただし、拡張メソッドは実際のクラスではなくインターフェイスにしかアクセスできないため、これは機能しない場合があります。
または、クラスを拡張することもできますがRectControl
、これには PushButton と BevelButton だけでなく、すべてのデスクトップ コントロールが含まれます。
3 番目のオプションは、BevelButton クラスのみを使用することです。