2015-10-30 39 views
1

我明白在C#中關於全局變量的問題已經被問過太多次了,但是如果可能的話,任何人都可以解釋如何使用一個方法創建的一個類的實例,但也需要在另一種方法,因爲我必須依靠一個實例,而不是創建多個實例。網上的其他問題並沒有幫助我看到。一個類的實例的C#全局變量

我下面的代碼:

public void loadCreateAccountCtr() 
    { 
     // Create Controller 
     CreateAccountController ctr = new CreateAccountController(); 
     // Start Controller 
     ctr.start(); 
     // Session is active 
    } 

    public void checkCredentials(string appNum) 
    { 
     CreateAccountController ctr = new CreateAccountController(); 
     ctr.create(); 

    } 

我創建了CreateAccountController「點擊率」的一個實例,這樣我就可以訪問控制器的方法,當我將數據發送到系統的另一部分我需要調用另一種方法。我怎麼會用以前的實例,而無需創建一個新的實例(如checkCredentials(...)看到

感謝

回答

5

讀約在C#中的變量範圍https://msdn.microsoft.com/en-us/library/aa691132(v=vs.71).aspx

private CreateAccountController ctr; 
public void loadCreateAccountCtr() 
{ 
    // Create Controller 
    ctr = new CreateAccountController(); 
    // Start Controller 
    ctr.start(); 
    // Session is active 
} 

public void checkCredentials(string appNum) 
{ 
    if (ctr != null) 
    { 
     ctr.create(); 
    } 
    else 
    { 
     //handle this case here 
    } 
} 
+1

非常感謝,作品像一個魅力,現在我覺得有點愚蠢,這是我沒有想到的簡單。 (我會將其標記爲正確) – Kenyanke

3

你所描述的單身設計模式閱讀關於它並看到的例子here

然而ahmelsayed的答案在這種情況下完美地解決了你的問題,如果以後你必須從其他類訪問同一個類在你的系統中安裝你的CreateAccountController,因爲Singleton可以在全球範圍內解決這個問題。 您可以稍後再回來。祝你好運!

+0

你是對的,可悲的是我在幾個月內沒有碰過C#,我從網上查看關於我的問題的文章,但大多數答案只是複雜的被問到的問題。 – Kenyanke

+0

你說得對。一些例子過於複雜。在你的情況下,你可以保持簡單。 – DDan