2010-10-18 78 views
2

我的短代碼:C#指針 - 靜態調用

class A 
{ 
    private B b; 
    public void b(){}; 
} 

class B 
{ 
    private void a() 
    { 
    A.b(); 
    } 
} 

我可以空A中的B靜態的,但我有一些控制像this.Controls.Add();

他們必須是靜態太多,但我不知道如何實現它,你能告訴我,還是我們對這一解決方案:)

+1

上面的代碼不會編譯,因爲變量和方法具有相同的名稱。你能否發佈你的實際代碼?這可能有助於回答你的問題。 – 2010-10-18 17:12:10

回答

1

更好的方法你可以做任何

class B { 
    private readonly A instance; 
    public B(A instance) { this.instance = instance; } 
    private void a() { 
     instance.b(); 
    } 
} 

class B { 
    private void a(A instance) { 
     instance.b(); 
    } 
} 

取決於它是什麼,你正在嘗試做的。

(請注意,您需要A重命名或者B bvoid b。)

+0

這很棒,你能說出一本關於這樣的東西的好書嗎? – nXqd 2010-10-18 18:57:06

1

要在靜態函數中使用控件,該控件必須是靜態的了。

private static Button StaticButtonObject = new Button(); 
public static void AddControl() 
{ 
    StaticButtonObject.Text = "Button"; 
}