OVH Cloud OVH Cloud

Les Class - version 2

2 réponses
Avatar
Ayanami
Bonjour,
Voici donc les classes que j'ai déclarées :

Public Class Categorie
Public ReponseNombre As Integer
Public LigneNumero As Integer() = {0, 0, 0, 0, 0}
Public ReponseId As Integer() = {0, 0, 0, 0, 0}
Public ReponseTexte As String() = {"", "", "", "", ""}
Public ReponseEtat As Integer() = {0, 0, 0, 0, 0}
'0:ok 1:deja donnée 2:faux
End Class

Class Ordi
Public Score As Integer = 0
Private _listTheme(7) As Categorie
Public Property ListeTheme() As Categorie()
Get
_listTheme(0) = New Categorie
_listTheme(1) = New Categorie
_listTheme(2) = New Categorie
_listTheme(3) = New Categorie
_listTheme(4) = New Categorie
_listTheme(5) = New Categorie
_listTheme(6) = New Categorie
Return _listTheme
End Get
Set(ByVal value As Categorie())
_listTheme = value
End Set
End Property

End Class

Je fais ca :
Ordi1.ListeTheme(0).ReponseNombre = 1
Et affiche Ordi1.ListeTheme(0).ReponseNombre.ToString()

Il m'affiche toujours 0 !!!!
Help !!!

Merci d'avance.

2 réponses

Avatar
Fabien Bezagu
Anyami,

Rien de plus normal que ton programme affiche toujours 0.

Tu recrées les catégories du membre _listTheme de la classe Ordi à chaque
fois que tu accédes à la propriété, c'est à dire concrétement, quand tu
écris :

Ordi1.ListeTheme(0).....

Je pense que ce que tu souhaiterais faire est plutôt une initialisation dans
le contructeur de la classe Ordi, du genre :

Public Sub New()
Dim i As Integer
For i = 0 To 6
_listTheme(i) = New Categorie
Next i
End Sub

Fabien

"Ayanami" a écrit dans le message de
news:
Bonjour,
Voici donc les classes que j'ai déclarées :

Public Class Categorie
Public ReponseNombre As Integer
Public LigneNumero As Integer() = {0, 0, 0, 0, 0}
Public ReponseId As Integer() = {0, 0, 0, 0, 0}
Public ReponseTexte As String() = {"", "", "", "", ""}
Public ReponseEtat As Integer() = {0, 0, 0, 0, 0}
'0:ok 1:deja donnée 2:faux
End Class

Class Ordi
Public Score As Integer = 0
Private _listTheme(7) As Categorie
Public Property ListeTheme() As Categorie()
Get
_listTheme(0) = New Categorie
_listTheme(1) = New Categorie
_listTheme(2) = New Categorie
_listTheme(3) = New Categorie
_listTheme(4) = New Categorie
_listTheme(5) = New Categorie
_listTheme(6) = New Categorie
Return _listTheme
End Get
Set(ByVal value As Categorie())
_listTheme = value
End Set
End Property

End Class

Je fais ca :
Ordi1.ListeTheme(0).ReponseNombre = 1
Et affiche Ordi1.ListeTheme(0).ReponseNombre.ToString()

Il m'affiche toujours 0 !!!!
Help !!!

Merci d'avance.


Avatar
Ayanami
Oui, c'est tout à fait ca.
Ca fonctionne !
Merci, je suis encore débutante avec les class, les méthodes et tout et
tout...
:)



"Fabien Bezagu" a écrit :

Anyami,

Rien de plus normal que ton programme affiche toujours 0.

Tu recrées les catégories du membre _listTheme de la classe Ordi à chaque
fois que tu accédes à la propriété, c'est à dire concrétement, quand tu
écris :

Ordi1.ListeTheme(0).....

Je pense que ce que tu souhaiterais faire est plutôt une initialisation dans
le contructeur de la classe Ordi, du genre :

Public Sub New()
Dim i As Integer
For i = 0 To 6
_listTheme(i) = New Categorie
Next i
End Sub

Fabien

"Ayanami" a écrit dans le message de
news:
> Bonjour,
> Voici donc les classes que j'ai déclarées :
>
> Public Class Categorie
> Public ReponseNombre As Integer
> Public LigneNumero As Integer() = {0, 0, 0, 0, 0}
> Public ReponseId As Integer() = {0, 0, 0, 0, 0}
> Public ReponseTexte As String() = {"", "", "", "", ""}
> Public ReponseEtat As Integer() = {0, 0, 0, 0, 0}
> '0:ok 1:deja donnée 2:faux
> End Class
>
> Class Ordi
> Public Score As Integer = 0
> Private _listTheme(7) As Categorie
> Public Property ListeTheme() As Categorie()
> Get
> _listTheme(0) = New Categorie
> _listTheme(1) = New Categorie
> _listTheme(2) = New Categorie
> _listTheme(3) = New Categorie
> _listTheme(4) = New Categorie
> _listTheme(5) = New Categorie
> _listTheme(6) = New Categorie
> Return _listTheme
> End Get
> Set(ByVal value As Categorie())
> _listTheme = value
> End Set
> End Property
>
> End Class
>
> Je fais ca :
> Ordi1.ListeTheme(0).ReponseNombre = 1
> Et affiche Ordi1.ListeTheme(0).ReponseNombre.ToString()
>
> Il m'affiche toujours 0 !!!!
> Help !!!
>
> Merci d'avance.