我在同一解決方案中有3個項目。其中一個項目有一個靜態變量,我試圖通過訪問它在另外兩個項目(通過添加第三個項目的dll)。我發現在其他兩個項目中創建了2個不同的靜態變量副本。如何跨項目使用變量(可能是靜態的)?
我該如何解決這個問題並訪問這個靜態變量,並使它在整個2個項目中只有一個實例?我的意思是一旦它在一個項目中被修改,就應該反映在另一個項目中。
我在同一解決方案中有3個項目。其中一個項目有一個靜態變量,我試圖通過訪問它在另外兩個項目(通過添加第三個項目的dll)。我發現在其他兩個項目中創建了2個不同的靜態變量副本。如何跨項目使用變量(可能是靜態的)?
我該如何解決這個問題並訪問這個靜態變量,並使它在整個2個項目中只有一個實例?我的意思是一旦它在一個項目中被修改,就應該反映在另一個項目中。
當然你可以,甚至很容易。
由於你已經指定標籤solution,假設您正在使用的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,但請注意,變量聲明必須位於類範圍內。
我試過這個方法沒有部分類。它不起作用。爲了寫「使用CrossProject;」我需要將dll添加到這兩個項目中。如果我將這個DLL添加到兩個項目中。我似乎把變量作爲不同的實例。 – AdCan 2013-02-28 14:52:33
不作爲DLL添加。在另外兩個項目中,您將這個項目添加爲***項目引用***,並且如果您需要在不同的項目中分別編寫類的部分,則需要部分類。如果您只使用變量而不是以單獨的方式完成類,則部分類是可選的。 – 2013-02-28 15:14:06
通過API函數訪問變量。不要創建一個靜態全局對象,但要有一個指針並在第一次調用該API函數時創建該變量。閱讀關於Singleton模式。
什麼語言? – leppie 2013-02-27 18:58:32