英語で読む

次の方法で共有


クラス '<クラス名>' は同じ名前とシグネチャが指定された複数のメンバーを含むため、このシグネチャに一致するメンバー '<クラス名>.<プロシージャ名>' をオーバーライドすることはできません: <シグネチャ リスト>

プロシージャまたはプロパティが継承先のプロシージャまたはプロパティをオーバーライドしようとしましたが、コンパイラによって、同じ名前およびシグネチャを持つ基本プロシージャまたはプロパティの複数のバージョンが検出されました。

このエラーは、次のスケルトン宣言に示すように、ジェネリック型が構築されている場合に発生することがあります。

Public Class baseClass(Of t)  
    Public Overridable Sub doSomething(ByVal inputValue As String)  
    End Sub  
    Public Overridable Sub doSomething(ByVal inputValue As t)  
    End Sub  
End Class  
Public Class derivedClass  
    Inherits baseClass(Of String)  
    Overrides Sub doSomething(ByVal inputValue As String)  
    End Sub  
End Class  

derivedClassbaseClass を指定する String を型パラメーター tに継承するため、 doSomething に関する限り、 baseClass にある derivedClass の 2 つのバージョンは同じシグネチャを引き継ぎます。 その結果、コンパイラはどのバージョンをオーバーライドするか判断できません。

エラー ID: BC30935

このエラーを解決するには

  • メンバーのプロシージャまたはプロパティの 1 つまたは複数のシグネチャが同じにならないように、基底クラスに指定する 1 つ以上の型引数を変更します。

    または

  • 使用している一連の型引数と共に基底クラスを継承する必要がある場合は、このエラー メッセージに示されているプロシージャまたはプロパティをオーバーライドしないでください。

関連項目