2016-11-30 128 views
0

在我的vb.net應用程序中有多個項目一起工作。我使用的是flag作爲全局變量,可以在整個應用程序中訪問,但有問題。我在另一個模塊中有另一個名爲變量的標誌,我想用另一個標誌分配標誌值。如何在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)**通過進程間通信** 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

我認爲你需要引用的第一個項目中的第二個: 右擊它並添加引用,從溶液中選項卡中選擇第一個項目,讓你的模塊公衆穴居人所提到的,然後在代碼中導入的第一個項目的命名空間,如下所示:

第一個項目:

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