为啥模块中的这个公共函数无法访问

Posted

技术标签:

【中文标题】为啥模块中的这个公共函数无法访问【英文标题】:Why is this Public Function in a Module not accessible为什么模块中的这个公共函数无法访问 【发布时间】:2016-08-11 07:40:13 【问题描述】:

我有一个由几个有用的小实用程序组成的程序集。其中我有一个包含一个简单公共函数的模块。

Module FishTrackerConfigurations

Public Function GetValueOfUseProductId As Boolean
    Return VtlGetUseProductId 'A simple private routine in the same module
End Function
End Module

当我从另一个项目(其中引用了此程序集)调用此函数时,我收到以下错误。

Error   BC30390 'FishTrackerConfigurations.Public Function GetValueOfUseProductId() As Boolean' is not accessible in this context because it is 'Public'.   

从我的项目 Application.Xaml.VB 文件中调用该函数,特别是在 Protected Overrides Sub OnStartup(e As StartupEventArgs) 例程中。

我想知道为什么会这样。

【问题讨论】:

如果您尝试对模块中的功能进行单元测试,这也可能会烧毁您。 【参考方案1】:

虽然方法Public,但模块(默认)不是。

您需要明确指定:

Public Module FishTrackerConfigurations

【讨论】:

谢谢马特,我一直认为模块默认是公开的,我将把它当作今天的新课程。你得等一会儿我才能接受!

以上是关于为啥模块中的这个公共函数无法访问的主要内容,如果未能解决你的问题,请参考以下文章

Sources 文件夹中的文件无法访问 Xcode 游乐场中其他文件的公共类或函数

无法访问模块函数中的 quill 实例

C++:为啥我的 DerivedClass 的构造函数无法访问 BaseClass 的受保护字段?

内联函数无法访问非公共 API:@PublishedApi vs @Suppress vs @JvmSynthetic

为啥我无法访问 tomcat 中的服务 CXF:HTTP 状态 500 - 内部服务器错误

无法访问用户控制公共属性