Problème sur la portée des variables (int, obj, ...) [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
10 janvier 2007
-
Messages postés
5
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
10 janvier 2007
-
Nota : EDI utilisé DELPHI 2005;

Le probléme qui se pose est le suivant :

Je souhaite pouvoir partager des variables ou des objets à partir de tous les .CS d'un même projet (qui sont dans le meme namespace). La propriété public semble la solution, cependant si j'instancie un objet (declare public) dans 1.CS , et que je veux utiliser une de ses méthode dans 2.CS (par exemple) j'obtient un message d'erreur à la compil de type : une reference d'objet est requise pour la proprité, la méthode, ....

Merci par avance aux différents lecteurs, de cette navrante histoire.

Vincent Canestrier

2 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Imaginons que dans 1.cs tu aies la classe Class1, et dans 2.cs la classe Class2



Dans Class2 tu fais :



Class1 c1 = new Class1();

puis



c1.MaPropriete = "aaa" ;

c1.MaMethode();



Ou alors, si tu veux pouvoir acceder aux propriétés et méthodes de la
classe C1 sans instancier, tu déclares tes propriétés et méthodes en
static, puis



Class1.MaPropriete = "aaa" ;

Class1.MaMethode();



Et la, les propriétés et méthodes sont accessibles "en commun"



Troisieme solution, tu utilises un singleton.



public class Class1

{

// Le singleton

public static readonly Class1 Instance = new Class1();



// Construteur

public Class1()

{

}



//les propriétés et méthodes

public string MaPropiete

{

get

set

}



public void MaMethode()

{

...

}

}



et ensuite tu l'utlises comme suit dans toutes les classes que tu veux !



Class1.Instance.MaPropriete = "aaa" ;





J'espere avoir bien compris ta question.
Mx
Messages postés
5
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
10 janvier 2007

Salut Mx,


Je dois dire que j'ai cherché un moment avant de poster cette question (exces de confiance). Mais je ne regrette pas, en effet, la solution du singleton, permet d'instancier des objects, et d'acceder à ses méthodes, à ces propriétés (lecture, ecriture), ...

Merci pour ton aide, et une leçon de modestie pour ce qui me concerne.

Vincent