'<methodname>' no es accesible en este contexto porque el tipo de valor devuelto no es accesible

Se llamó a una función que tiene un tipo de valor devuelto al que no puede acceder desde la instrucción de llamada. Por ejemplo, en el código siguiente, la llamada desde Main a PublicMethod produce un error porque el tipo de valor devuelto, PrivateType, se declara con el modificador de acceso Private en la clase TestClass. Por lo tanto, el contexto en el que se puede acceder a PrivateType 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

Identificador de error: BC36665 y BC36666

Para corregir este error

  • Si la definición de tipo es accesible, cambie el modificador de acceso de Private a Public.

  • Cambie el tipo de valor devuelto de la función si tiene acceso a él.

  • Escriba un método o el método de extensión que devuelva un tipo accesible.

Consulte también