Utilisation des variables d'une classe

Résolu
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008 - 7 janv. 2008 à 15:40
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008 - 8 janv. 2008 à 13:31
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

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
7 janv. 2008 à 15:58
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)
3
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008
8 janv. 2008 à 09:12
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
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
8 janv. 2008 à 12:46
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)
3
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008
8 janv. 2008 à 08:13
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008
8 janv. 2008 à 13:31
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
0
Rejoignez-nous