2010-10-18 177 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"; 
}