2010-10-18 4 views
2

Mon code court:C# pointeur - statique appelant

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

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

je peux faire vide b en statique mais je possède des contrôles comme this.Controls.Add();

Ils doivent être statiques aussi, mais je ne sais pas comment le mettre en œuvre, pouvez-vous me montrer ou faire, nous avons une meilleure façon pour cette solution :)

+1

Le code ci-dessus ne compile pas car la variable et la méthode portent le même nom. Pourriez-vous s'il vous plaît poster votre code réel? Cela aiderait probablement à répondre à votre question. –

Répondre

1

Vous pouvez soit faire

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

ou

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

en fonction de ce qu'il est que vous essayez de faire.

(Notez que vous devez renommer soit B b ou void b dans A.)

+0

C'est génial, pouvez-vous nommer un bon livre d'apprentissage sur quelque chose comme ça? – nXqd

1

Pour utiliser le contrôle de la fonction statique, le contrôle doivent être statiques aussi.

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