2013-02-27 86 views
1

我在同一解決方案中有3個項目。其中一個項目有一個靜態變量,我試圖通過訪問它在另外兩個項目(通過添加第三個項目的dll)。我發現在其他兩個項目中創建了2個不同的靜態變量副本。如何跨項目使用變量(可能是靜態的)?

我該如何解決這個問題並訪問這個靜態變量,並使它在整個2個項目中只有一個實例?我的意思是一旦它在一個項目中被修改,就應該反映在另一個項目中。

+3

什麼語言? – leppie 2013-02-27 18:58:32

回答

3

當然你可以,甚至很容易。

由於你已經指定標籤,假設您正在使用的Visual Studio開發是合理的。

我進一步假設你正在用c#編寫,但如果你不是,那麼會有類似的方法來做同樣的事情。

用c#,在項目中聲明的靜態變量,像

namespace CrossProject { 
    public partial class PartialClass { 
     public static String StaticVariable="123"; 
    } 
} 

而且你可以通過指定

using CrossProject; 

所以,你可以使用它像

訪問另外兩個項目 StaticVariable
Console.Write("{0}", PartialClass.StaticVariable); 

這不一定是partial class,但請注意,變量聲明必須位於類範圍內。

+0

我試過這個方法沒有部分類。它不起作用。爲了寫「使用CrossProject;」我需要將dll添加到這兩個項目中。如果我將這個DLL添加到兩個項目中。我似乎把變量作爲不同的實例。 – AdCan 2013-02-28 14:52:33

+0

不作爲DLL添加。在另外兩個項目中,您將這個項目添加爲***項目引用***,並且如果您需要在不同的項目中分別編寫類的部分,則需要部分類。如果您只使用變量而不是以單獨的方式完成類,則部分類是可選的。 – 2013-02-28 15:14:06

0

通過API函數訪問變量。不要創建一個靜態全局對象,但要有一個指針並在第一次調用該API函數時創建該變量。閱讀關於Singleton模式。