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

Résolu
cs_vincent_c Messages postés 5 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 10 janvier 2007 - 15 févr. 2005 à 23:25
cs_vincent_c Messages postés 5 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 10 janvier 2007 - 16 févr. 2005 à 09:56
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

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
16 févr. 2005 à 08:56
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
3
cs_vincent_c Messages postés 5 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 10 janvier 2007
16 févr. 2005 à 09:56
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
0
Rejoignez-nous