Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
'<derivedtypename>' cannot inherit from <type> '<constructedbasetypename>' because it expands the access of type '<internaltypename>' to <region> '<regionname>'
Una classe o un'interfaccia derivata sta cercando di espandere il livello di accesso di un tipo interno, utilizzandolo come argomento di tipo per una classe o un'interfaccia di base.
Il seguente codice di esempio può generare questo errore.
Public Class containingClass
Public Class baseClass(Of t)
End Class
Friend Class derivedClass
Inherits baseClass(Of internalStructure)
End Class
Private Structure internalStructure
Dim firstMember As Integer
End Structure
End Class
Al codice esterno a containingClass non è consentito l'accesso a internalStructure. Tuttavia, è possibile accedere a derivedClass da qualsiasi codice nello stesso assembly. Per questo motivo non è possibile che derivedClass erediti baseClass se utilizza internalStructure come argomento di tipo, in quanto ciò potrebbe esporre internalStructure in tutta la regione del codice di definizione.
ID errore: BC30921
Per correggere l'errore
Regolare i livelli di accesso delle classi o delle interfacce in modo che il tipo derivato non espanda il livello di accesso del tipo interno.
-oppure-
Se non è possibile regolare i livelli di accesso, non utilizzare il tipo interno come argomento di tipo durante la costruzione della classe o dell'interfaccia base.
Vedere anche
Concetti
Nozioni fondamentali sull'ereditarietà
Livelli di accesso in Visual Basic