This et static

Signaler
Messages postés
37
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
26 décembre 2010
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour,
Ma question doit avoir une réponse toute bête mais je n'arrive pas à la trouver...

Voila mon problème:
J'ai plusieurs classe (on va dire pour ici Action et Globale) ainsi que ma form principale.

Lors d'une action (ouverture d'un fichier via un openfiledialog dans la classe Actions) j'enregistre ce nom de fichier dans une variable globale située dans la classe Globale.

Je souhaiterai modifier le text de ma form principale, lors d'un appel de fonction dans ma form principale,
( this.Text = "AppConfig / " + Global.fichier; )
Or mes fonctions (dans la classe Actions et dans la form) sont definies de cette façon : 'internal static ma fonction() {...}'

Comment puis-je remédier à ce problème?
Merci de vos réponse

4 réponses

Messages postés
37
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
26 décembre 2010

J'élargie ma question.
Comment accéder simplement à cette variable (this) quand on fait un appel de fonction qui est static?
Messages postés
37
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
26 décembre 2010

Je viens d'accéder à ma form en fesant un 'Form.Activeform' mais ce n'est pas propre...
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Salut,
Ce n'est pas possible. Le mot clé static implique que la méthode n'est pas liée à un objet, on ne peut donc pas accéder à l'objet (this).

<hr />
-Blog-
-Site Perso-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
'this' s'application à un membre d'instance d'une classe.

'static' s'applique aux membres (ou classe) accessibles à toutes les instances d'une classe.

en gros :

public class MaClasse {
public string MaProprieteInstance { get; set; }

public static string MaProprieteStatic { get; set; }
}

MaClasse classe = new MaClasse();

classe.MaProprieteInstance = "toto";
MaClasse.MaProprieteStatic = "titi";