2016-04-19 8 views
4

Ich habe eine Baugruppe aus mehreren nützlichen kleinen Dienstprogrammen. Innerhalb dessen habe ich ein Modul mit einer einfachen öffentlichen Funktion.Warum ist diese öffentliche Funktion in einem Modul nicht zugänglich?

Module FishTrackerConfigurations 

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

Wenn ich diese Funktion aufrufen aus einem anderen Projekt (in dem diese Assembly verwiesen wird ich die folgende Fehlermeldung erhalten.

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

Die Funktion aus meinen Projekten aufgerufen wird Application.Xaml.VB Datei , speziell im geschützten Überschreibungen Sub OnStartup (e As StartupEventArgs) Routine.

ich würde gerne wissen, warum dies geschieht.

Antwort

13

Obwohl die Methode ist Public, die Modul (standardmäßig) ist nicht.

Sie müssen dies explizit angeben:

Public Module FishTrackerConfigurations 
+1

Sie Matt Danke, würde ich immer davon ausgegangen Module standardmäßig öffentlich waren, ich nehme das als heutige neue Lektion gelernt. Sie müssen eine kurze Zeit warten, bevor ich es annehmen kann! –