OVH Cloud OVH Cloud

Tableau d'objets et Index

1 réponse
Avatar
DJM
Je créee une classe , par exemple : My_File

Dans mon projet je crée un tableau d'objets My_File :
Dim MyFiles(10) As My_File
.....
.....
For k%= 0 to 10
Set MyFiles(k%) = New My_file
Next k%

Comment à l'intérieur de la classe, je peux connaitre l'index (l'instance de
l'objet)

Je m'explique, si je fait MyFiles(I%).nom = "xxx"
Comment à l'intérieur de la classe, je peut connaitre la valeur de I%

Je pourrai créer une propiété Index, mais c'est un peu lourd
MyFiles(I%).Index = I%
MyFiles(I%).nom = "xxx"

1 réponse

Avatar
François Picalausa
Bonjour/soir,

En quoi la classe devrait-elle connaitre l'index affecté par un objet
extérieur? Le but d'une classe n'est pas de connaitre l'entièreté de ton
projet mais plutôt, d'offrir un composant réutilisable dans un ou plusieurs
projets.
Donc, à moins de passer par une propriété perettant de stoquer l'Index, il
n'y a pas beaucoup de choix. Même en utilisant une collection d'objets, tu
devrais utiliser cette méthode. Mais tu n'aurais plus à te soucier de
l'affectation.

Autre chose, pense à typer tes variables par Dim k As Integer; % était
utilisé dans les anciennes versions de Basic mais n'est absolument plus
utilisé en dans les versions plus récentes (.Net).
Il y a une exception : les fonctions retournant un Variant et qui sont plus
rapides en retournant un type plus "simple", comme par exemple mid$, plus
rapide que mid.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com

"DJM" a écrit dans le message de
news:3f676f20$0$31730$
Je créee une classe , par exemple : My_File

Dans mon projet je crée un tableau d'objets My_File :
Dim MyFiles(10) As My_File
.....
.....
For k%= 0 to 10
Set MyFiles(k%) = New My_file
Next k%

Comment à l'intérieur de la classe, je peux connaitre l'index (l'instance


de
l'objet)

Je m'explique, si je fait MyFiles(I%).nom = "xxx"
Comment à l'intérieur de la classe, je peut connaitre la valeur de I%

Je pourrai créer une propiété Index, mais c'est un peu lourd
MyFiles(I%).Index = I%
MyFiles(I%).nom = "xxx"