Element "<methodname>" nie jest dostępny w tym kontekście, ponieważ zwracany typ jest niedostępny

Wywołano funkcję, która ma typ zwracany, do którego nie można uzyskać dostępu z instrukcji wywołującej. Na przykład w poniższym kodzie wywołanie metody z Main metody nie PublicMethod powiedzie się, ponieważ zwracany typ PrivateType, jest zadeklarowany za pomocą Private modyfikatora dostępu w klasie TestClass. W związku z tym kontekst, do którego PrivateType można uzyskać dostęp, jest ograniczony do 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

Identyfikator błędu: BC36665 i BC36666

Aby poprawić ten błąd

  • Jeśli definicja typu jest dostępna, zmień modyfikator dostępu z Private na Public.

  • Zmień zwracany typ funkcji, jeśli masz do niej dostęp.

  • Napisz metodę lub metodę rozszerzenia zwracającą dostępny typ.

Zobacz też