Visual Studio 2015でVisual Basic .NETを使用していますが、私は次のことについて不思議です。今VB.NETでのインターフェイス継承:どちらが実装で参照されますか?
Public Interface InterfaceA
Property A As String ' Type not important here.
End Interface
Public Interface InterfaceB
Inherits InterfaceA
Property B As Integer ' Type not important here, either.
End Interface
私は(名前が示すように)InterfaceB
を実装InterfaceBImplementer
と呼ばれるクラス、作成するつもりです:
InterfaceA
から以下のように継承
InterfaceB
で、
InterfaceA
と
InterfaceB
という名前の2つのインターフェイスを、持っていると仮定
Public Class InterfaceBImplementer
Implements InterfaceB
Public Property B As Integer Implements InterfaceB.B
Get
' Snip.
End Get
Set(value As Integer)
' Snip.
End Set
End Property
' To be continued...
これまでのところ、とても良いです。プロパティB
はInterfaceB
にしかないので、どこから来たのか疑問はありません。
ただし、InterfaceB
は、A
をInterfaceA
から継承します。 InterfaceBImplementer
でA
次の実装の両方が有効であると表示されます。
' Referring to InterfaceA.
Public Property A As String Implements InterfaceA.A
Get
' Snip.
End Get
Set(value As String)
' Snip.
End Set
End Property
か:
' Referring to InterfaceB.
Public Property A As String Implements InterfaceB.A
Get
' Snip.
End Get
Set(value As String)
' Snip.
End Set
End Property
一つは私が好むでしょうか?両者の間に違いはありますか?それとも重要ではありませんか? 2つが同じ場合、この状況でどのようなコンベンションやベストプラクティスを実行する必要がありますか?
あなたがVSに自動的に行うようにすると、InterfaceA.A –
が実装されます.2番目のオプション 'InterfaceB.A Implements InterfaceB.A'は、' InterfaceA'がどこから来たのかが明確でないからです。 –