Поделиться через


Метод <имяМетода> недоступен в этом контексте, поскольку его возвращаемый тип недоступен

Обновлен: Ноябрь 2007

'<methodname>' is not accessible in this context because the return type is not accessible

Вы вызвали функцию, которая возвращает тип, к которому не имеет доступа оператор вызова. Например, в следующем коде вызов из Main в PublicMethod вызывает ошибку, потому что возвращаемый тип, PrivateType, объявлен с модификатором доступа Private в классе TestClass. Следовательно, контекст, без которого PrivateType не может получить доступ, ограничивает 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

Идентификатор ошибки: BC36665 и BC36666

Исправление этой ошибки

  • Если определение типа доступно, измените модификатор доступа с Private на Public.

  • Измените тип, возвращаемый функцией, если у вас нет доступа к определению.

  • Напишите метод или метод расширения, который возвращает доступный тип.

См. также

Основные понятия

Уровни доступа в Visual Basic