2016-11-30 3 views
0

В моем приложении vb.net, где несколько проектов работают вместе. Я использую flag как глобальную переменную, которая может быть доступна во всем приложении, но с проблемой. У меня есть другой флаг с именем variable в другом модуле, и я хочу присвоить значение флага другому флагу.Как установить значение глобальной переменной из переменной уровня класса в Vb.net

Проект 1

Module Abc 
    Public flag as String = "Hello" 
End Module 

и другой переменной флаг в другом проекте.

Проект 2

Module Pqr 
    Public flag1 as String = flag 
End Module 

Но он дает ошибку,

Abc не объявлен или недоступны из-за его уровня защиты.

+0

Насколько я знаю, что это возможно только в трех случаях: ** 1) ** Via межпроцессного связи ** 2) ** При сохранении значения в виде файла на жестком диске , или ** 3) ** Используя [** Файлы с отображением памяти **] (http://msdn.microsoft.com/en-us/library/dd997372.aspx) (аналогично варианту 2). –

+0

[** Работа с файлами с отображением памяти в .NET 4 **] (https://blogs.msdn.microsoft.com/salvapatuel/2009/06/08/working-with-memory-mapped-files-in-net -4 /). –

+0

, но если я использую файл для сохранения значения и снова значение флага будет изменено, оно примет предыдущие значения. – Pirate

ответ

0

Ошибка это правильно, попробуйте следующее:

PUBLIC Module Abc 
    Public flag as String = "Hello" 
End Module 
+0

Как это связано? Он хочет получить доступ к переменной из другого проекта/другого исполняемого файла (что возможно по-разному), это только установка локальной переменной и не будет связана с другими проектами. –

+0

@VisualVincent Я предполагаю, что ассеру нужно только получить доступ к переменной из другого проекта, на который ссылаются. Я думаю, вы идете дальше. – Caveman

+0

Это не то, как я толкую вопрос, но, возможно, вы правы. До сих пор каждый раз, когда я читал или перечитывал его, он всегда чувствовал то же самое для меня. Хотя он и никогда не заявляет об этом, легко узнать. –

0

Я думаю, вам нужно сослаться на первый проект во втором: правой кнопкой мыши на нем и добавить ссылку, на вкладке решение выбрать первый проект, сделать свой модуль общественности, как указано Caveman, то в процессе импорта кода первое пространство имен проекта в следующем:

первый проект:

Namespace Test 
    Public Module Abc 
     Public flag as String = "Hello" 
    End Module 
End Namespace 

Второй проект:

Imports WindowsApplication1.Test 
    Public Module Pqr 
     Public flag1 as String = flag 
    End Module 
Смежные вопросы