Partilhar via


'<methodname>' não está acessível neste contexto porque o tipo de retorno não está acessível

Você chamou uma função que tem um tipo de retorno que você não pode acessar a partir da demonstrativo de chamada.Por exemplo, no código a seguir, a telefonar de Main para PublicMethod falha porque o tipo de retorno, PrivateType, é declarada com o Private modificador de acesso na classe TestClass. Portanto, ao contexto no qual PrivateType pode ser acessado está limitado a TestClass.

Class TestClass

    Dim pT As New PrivateType

    Private Class PrivateType
    End Class

    '' A corresponding error is returned in this line: 'PublicMethod 
    '' cannot expose 'PrivateType' in namespace 'ConsoleApplication1' 
    '' through class 'TestClass'.
    'Public Function PublicMethod() As PrivateType
    '    Return Nothing
    'End Function

End Class

Module Module1

    Sub Main()

        Dim tc As TestClass
        '' This error occurs here, because the data type returned by 
        '' PublicMethod()is declared Private in class TestClass and 
        '' cannot be accessed from here.
        'Console.WriteLine(tc.PublicMethod())

    End Sub

End Module

ID de erro: BC36665 e BC36666

Para corrigir este erro

  • Se a definição de tipo estiver acessível, alterar o modificador de acesso de Private para Public.

  • Altere o tipo de retorno da função se você tiver acesso a ele.

  • Gravar um método ou o método de extensão que retorna um tipo acessível.

Consulte também

Conceitos

Níveis de acesso em Visual Basic