Utilisation des variables d'une classe [Résolu]

Signaler
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008
-
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008
-
bonjour a tous,

je débute dans le monde du C#, et je rencontre quelques difficultés, mes bases de C++ doivent être rouiller:

j'ai créer une classe avec des methodes et variables, par contre je voudrais pouvoir utiliser ces variables directement dans les actions des boutons de mon interface.

pareillement, pour une autre application, il faudrait que je puisse incrémenter mes objets style ListBox ou Edit a partir de mes méthodes...

Je crois que  les problèmes que je rencontre sont liés aux destructeur et constructeur des classes que je ne sais meme plus creer, et a l'instantiation de la classe que je ne dois pas faire au bon endroit.

pour mon prog principal, j'ai :



namespace

Generateur_de_programme_de_test





{




static



class



Program





{




[



STAThread

]






static



void


Main()


{






Application

.EnableVisualStyles();






Application
.SetCompatibleTextRenderingDefault(

false


);






Application
.Run(

new



IHMprincipale


());


}



}







public



class



DonneesContacts



{








//Liste des diferents parametres de recherche d'un contact.








public



int


NbContacts;






public



int


NbPositions;






// public String TypeContact;








public



String


Reference;






public



string
aze =

""


;






public



int


i = 0;






public



string


TypeContact


{







get



{







return

TypeContact;


}







set



{




TypeContact =



value

;


}



}







public



string


InitType()


{



aze =



"essai"

;





return

aze;


}



}



}

//******************************************************
//******************************************************
//******************************************************

Et pour la fenetre concernée:




namespace



Generateur_de_programme_de_test{


public



partial



class



IHMListContactEdit
:

Form

{







//instancie la classe donneesContacts






DonneesContacts
DonneesDesContacts =

new



DonneesContacts
();


public
IHMListContactEdit(){

InitializeComponent();

}


private



void
CBType_SelectedIndexChanged(

object
sender,

EventArgs
e){


int
i = 0 ;


int
aze CBType.SelectedIndex;DonneesDesContacts.TypeContact CBType.SelectedText;


string
 result = DonneesDesContacts.TypeContact; }









c'est dans cette derniere partie que la recuperation de la variable ne fonctionne pas result ne recupere rien et en plus le programme ne me retourne une erreur...

Merci de votre aide, je pense que pour certain ce probleme est une broutille, desolé de devoir repartir sur des bases qui ne sont pas terrible...

5 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
Hello,

TypeContact est une propriété , pas un variable.
Pour que ça puisse marcher, il faut que cette propriété se réfère à une variable privée de la classe en question :

private string _typeContact;
publicstring TypeContact {
get
{
return_typeContact;
}

set
{
_typeContact = value ;
}

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008

c'est bon!!!!   je me suis dépatouillé, c'était le selectedtext le probleme:

DonneesDesContacts._typeContact = CBType.SelectedItem.ToString();

string resultat = DonneesDesContacts._typeContact;

avec selecteditem, ça marche beaucoup mieux et du coup, et je convertit l'object en string et fini.

merci beaucoup pour ton aide.

@+ greg
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
Hello,

Comme je l'ai indiqué plus haut, _typeContact est un membre et devrait être privé.
Pour mettre à jour tu devrait passer par la propriété :

DonneesDesContacts.TypeContact = CBType.SelectedItem.ToString();

Ca ne change rien au final, c'est juste un peu plus propre.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008

lut,

je viens d'essayer ça, nikel le compilateur ne me retourne plus d'erreur (il ne tourne plus en rond).

Par contre je ne parviens pas a incrémenter la variable, jutilise ça dans un objet ListBox:
DonneesDesContacts._typeContact = CBType.SelectedText; 

 SelectedText   n'est pas le bon paramêtre?

Merci
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008

Autant pour moi c'est une erreur, un copier coller sauvage...

en effet c'est plus propre et c'est ce que je voulais faire.

Merci de ton aide !!!   

@+ greg