Acceder au variables d'une classe...? [VB.NET] - C#/.NET managed - Programmation
Marsh Posté le 21-06-2006 à 17:51:33
Citation : Comment faire par la suite pour pouvoir acceder aux variables i et str d'une classe cree en particulier vu quelle auront toutes le meme nom : montest ?? |
comment ça "elles auront toutes le meme nom" ? tu connais le principe d'instanciation d'une classe ?
Marsh Posté le 21-06-2006 à 17:57:42
Non effectivement j'ai du louper quelquechose...
Je suis sur qu'il y a une solution, mais je ne la connais pas...est il possible d'avoir une piste de recherche ?
Sinon je veux dire que comme je les ai toutes declaree par dim montest as new test, je ne sais pas apres comment acceder au variable de l'un ou l'autre de mes objets crees
Merci
Marsh Posté le 21-06-2006 à 19:14:36
déjà si tu veux y accéder elles doivent être "public"...
je ne connais pas bien vb.NET
mais en C#
public class TEST
{
public int a;
public int b;
}
TEST t = new TEST();
t.a = 1;
t.b = 2;
mais normalement les variables doivent être privée, et pour y accéder il faut des ascesseurs
public class TEST
{
private int a;
private int b;
public int A
{
get { return a; }
set { a =value; }
}
public int B
{
get { return b; }
set { b = value; }
}
}
alors ici pour y accéder c'est
TEST t = new TEST();
t.A = 1;
t.B = 2;
int temp = t.A;
mais bon si tu comprends pas ça, vaudrait mieux que tu retournes aux bases
si tu en veux plusieurs
TEST t1 = new TEST();
TEST t2 = new TEST();
TEST t3 = new TEST();
et bien entendu, chaque instance (t1, t2, t3, ...) représente une instance de la classe TEST. Ils sont donc tous indépendant...
Voix ça comme trois ceaux différents avec chacun leur substance...
Marsh Posté le 21-06-2006 à 19:25:32
Oui mais tout ca je sais...mon probleme est que chaque instance est cree pendant le runtime donc que je ne connais pas leur nom a l'avance...je ne peux pas creer de t1,t2,t3 car je ne sais pas combien il y en aura...
Marsh Posté le 21-06-2006 à 19:45:35
kissskoool a écrit : Oui mais tout ca je sais...mon probleme est que chaque instance est cree pendant le runtime donc que je ne connais pas leur nom a l'avance...je ne peux pas creer de t1,t2,t3 car je ne sais pas combien il y en aura... |
chaque instance est créée pendant le runtime ? c'est nouveau ça ? et depuis quand ?
Marsh Posté le 21-06-2006 à 20:29:56
s'il expliquait déjà à quoi il voulait arriver.
Sinon rien ne t'empêche de passer par un ArrayList de référence d'objet. C'est pour ça que c'est fait...
Sinon il te reste aussi l'introspection, mais la on commence à aller loin, surtout que tu n'as même pas l'air de maitriser la POO convenablement...
Marsh Posté le 21-06-2006 à 20:35:23
kissskoool a écrit : Oui mais tout ca je sais...mon probleme est que chaque instance est cree pendant le runtime donc que je ne connais pas leur nom a l'avance...je ne peux pas creer de t1,t2,t3 car je ne sais pas combien il y en aura... |
... les instances de classes sont toujours créé pdt le "runtime" (ca ne veut rien dire au passage) si tu connais pas les noms des instances de ta classes alors c'est que tu sais pas mais alors pas DU TOUT ce que tu fais ... faut apprendre a coder avant de pouvoir essayer l'objet.
Marsh Posté le 03-07-2006 à 11:10:22
Oula faut se calme les gens.
Kisskool : si j'ai bien compris, tu veux instancier un nombre n d'instances de ta classe 'Test' pendant l'exécution (le runtime) de ton programme.
Et tu ne sais pas comment les identifier ?
La solution :
* Tu instancies un tableau de 'Test'
* Puis tu fais une boucle sur toute la longueur de ton tableau pour instancier chaque 'Test' de ton tableau.
* Ainsi tu pourras y accéder simplement et proprement en utilisant les indices du tableau.
Je connais pas VB.Net, mais en C# ça donne ça :
Code :
|
Marsh Posté le 03-07-2006 à 12:23:50
et si tu veux que ce soit dynamique, tu passes par un ArrayList qui est un tableau dynamique... ça à plus ou moins le même fonctionnement que les tableaux statiques mais avec des plus.
Marsh Posté le 21-06-2006 à 17:40:04
Bonjour,
Ma question est assez simple :
Si par exemple j'ai une classe "Test", qui contient 2 variables :
- i as integer
- str as string
Que dans mon code j'ai une fonction que j'appelle plusieurs fois qui fait :
Private Sub NewTest_Init()
Dim montest as New Test
End Sub
Comment faire par la suite pour pouvoir acceder aux variables i et str d'une classe cree en particulier vu quelle auront toutes le meme nom : montest ??
Est il possible d'incrementer le nom a chaque declaration pour avoir un nom unique??
Merci