Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème d'utilisation d'une Class [ Divers / General ] (Shucky)

samedi 7 juin 2008 à 17:16:59 | Problème d'utilisation d'une Class

Shucky

Bonjour à tous,

Tout d'abord j'espere avoir bien choisi le thème du sujet si ce n'est pas le cas je tien à m'en excuser.

Je sollicite votre aide aujourd'hui car malgré mes recherches je ne trouve pas de réponses à ma question. J'ai un programme à faire un VB un window application j'ai donc :

Ma class form1 qui contient tout le code concernent les événements sur les boutons et autre et ma class perso voilà à quoi cela ressemble

Public Class  Form1
    'Mon code...
End Class

Public Class Liste
   'Mon code
End Class

Jusque là tous va bien mais je doit faire de façon que ma fonction liste gère aussi bien les Char, Integer ou String donc j'ai rajouté (Of ElementType) dans la déclaration de ma liste.
Je viens vers vous maintenant car lorsque j'appel ma liste dans ma Public Class Form1 cela me pose problème. Voici ce que j'ai besoin de faire

Public Class Form1
   Tableau_de_Liste(taille) As Liste(?????)
End Class

Public Class Liste (of ElementType)
   'Mon code...
End Class

En l'endroit des "????" je ne sais pas quoi mettre. En effet j'ai besoin d'un tableau qui me stock des listes aussi bien d'integer que de char ou string.
Est-ce que cela est possible au moins? Si oui comment faire? Si non comment contourner cette contrainte?

J'espere avoir été assez claire.

Je vous remercie d'avance

Shucky

dimanche 8 juin 2008 à 02:50:18 | Re : Problème d'utilisation d'une Class

Kevin.Ory

Salut Shucky,

Si tu as des Char, Integer ou String à mettre dans ta liste, le type String pourrais faire l'affaire. Le problème, c'est que tu ne pourra plus savoir de quel type était ta valeur avant de l'ajouter à la liste, car toute seront convertie en String. Par contre, si tu stoque tes valeurs sous forme d'Object, tu pourra le faire:

    Private Liste As New List(Of Object)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Liste.Add("Salut")
        Liste.Add(Chr(100))
        Liste.Add(149)
        Liste.Add(Chr(110))
        Liste.Add("123456")
        Liste.Add(123456)
        Liste.Add("5")

        For Each item As Object In Liste

            If TypeOf (item) Is System.String Then
                Console.WriteLine("String  : " & item.ToString)
            ElseIf TypeOf (item) Is System.Char Then
                Console.WriteLine("Char    : " & item.ToString)
            ElseIf TypeOf (item) Is System.Int32 Then
                Console.WriteLine("Integer : " & item.ToString)
            End If

        Next
    End Sub


dimanche 8 juin 2008 à 10:50:23 | Re : Problème d'utilisation d'une Class

Shucky

Bonjour,

En fait j'ai une combobox ou l'utilisateur choisi le type qu'il veux. J'ai déjà pensé au String mais notre prof veux qu'on fasse la différence entre les types.

J'ai aussi pensé a faire comme tu as dit

Dim Liste_liste(taille) As Liste(Of Objet) mais après ce bout de code me pause problème

                    Select Case ComboBox1.Text
                    Case "Integer"
                    Liste_liste(nombre_de_liste) = New Liste(Of Integer)
                    Case "Char"
                         Liste_liste(nombre_de_liste) = New Liste(Of Char)
                    Case "String"
                           Liste_liste(nombre_de_liste) = New Liste(Of String)
                    End Select

Mais après ça me dit qu'il ne peut pas converti Integer, Char ou String en Systeme Object

Est-ce que tu vois ce que je veux dire?

Merci d'avance.

Shucky

dimanche 8 juin 2008 à 17:10:20 | Re : Problème d'utilisation d'une Class

Kevin.Ory

D'après ton code, tu n'essaie pas de convertir un String, Integer ou Char en object, mais une liste d'Integer, String ou Char en liste d'Object.

Je ne suis pas sûr que tu procède de la bonne façon...

- Dois-tu créer une liste contenant différents types ou dois tu créer plusieurs listes chacune contenant un type différent?

- Ta classe Liste c'est quoi?




dimanche 8 juin 2008 à 17:21:10 | Re : Problème d'utilisation d'une Class

Shucky

en fait je dois créer une class liste qui peut être de plusieurs type (type choisi par l'utilisateur).

C'est pour quoi je dois faire une Public Class Liste(Of elementType)
Donc j'ai une class Liste et une seul qui prend le type choisi par l'utilisateur

Maintenant dans mon code principale je dois géré plusieurs Listes, mais je dois les gérer peut importe leurs types, c'est pour quoi je souhaite les stocker dans un tableau

J'espère avoir était clair

Merci de tes réponses

Shucky

dimanche 8 juin 2008 à 17:40:12 | Re : Problème d'utilisation d'une Class

scottmat

Membre Club
Tous dans une class !

Je pense que le plus simple serait de faire des class distincte pour chaque choix de l'utilisateur

dimanche 8 juin 2008 à 17:44:42 | Re : Problème d'utilisation d'une Class

Shucky

le problème justement c'est que le prof veux qu'on gère tout a partir d'une seule class. Mon seul problème c'est le stockage de ces class.

dimanche 8 juin 2008 à 17:58:44 | Re : Problème d'utilisation d'une Class

Kevin.Ory

"J'espère avoir était clair"
Par encore assez



Si tu dois créer plusieurs listes, chacune contenant des types différents :

Dim Tab_List(2) As IList
Tab_List(0) = New List(Of Object)
Tab_List(1) = New List(Of Object)
Tab_List(2) = New List(Of Object)

Avec ce code tu aura donc 3 listes dans lesquelles tu pourra ajouter des valeurs de n'importe quel type :

Tab_List(0).Add([Integer])
Tab_List(0).Add([String])
Tab_List(1).Add([Integer])
Tab_List(1).Add([String])
Tab_List(2).Add([Integer])
Tab_List(2).Add([String])



Si tu veux plutôt créer des listes contenant 1 seul type de donées, mais en avoir plusieurs (chacune stoquant des types différents) :

Dim Tab_List(2) As IList
Tab_List(0) = New List(Of String)
Tab_List(1) = New List(Of Integer)
Tab_List(2) = New List(Of Char)

Tu pourra donc ajouter des String à la liste Tab_List(0), des Integer à la liste Tab_List(1) et des Char à la liste Tab_List(2) :

' Si tu essai d'ajouter un autre type qu'un String à Tab_List(0), tu aura une erreur
Tab_List(0).Add([String])
Tab_List(0).Add([String2])

' Si tu essai d'ajouter un autre type qu'un Integer à Tab_List(1), tu aura une erreur
Tab_List(1).Add([Integer])
Tab_List(1).Add([Integer2])

' Si tu essai d'ajouter un autre type qu'un Char à Tab_List(2), tu aura une erreur
Tab_List(2).Add([Char])
Tab_List(2).Add([Char2])



Tu peux stoquer tes classes Liste sous forme de IList seulement si celle-ci implémentent IList (par exemple si elle sont dérivé de List)


dimanche 8 juin 2008 à 18:07:25 | Re : Problème d'utilisation d'une Class

Shucky

je ne connais pas Ilist :s

Mais dans le principe c'est bien la deuxième partie de ton explication que j'ai besoin.

Merci des efforts que tu fais pour m'aider.

Shucky

dimanche 8 juin 2008 à 18:48:09 | Re : Problème d'utilisation d'une Class

Kevin.Ory

OK

Tout d'abord, une liste "normal" dans .NET est une List(Of ...). Celle-ci impléments l'interface IList, cela te permet de stocker des listes de types différents en IList.

Donc si on résume, tu veux créer différents type de listes (liste d'integer, de string...) que tu veux stocker dans une même classe.
Autrement dit, c'est une liste de listes de différents types:

' La liste contenant les différents types de liste:
Private Lists As New List(Of IList)

' Ajout de nouveaux types de listes (liste de String et d'Integer dans ce cas):

Lists.Add(New List(Of String))
Lists.Add(New List(Of Integer))


' Ajout de nouveaux éléments aux listes. La 1ère liste est une liste de String :
Lists(0).Add("Salut")
Lists(0).Add("Bonjour")
' La 2ème liste est une liste d'Integer :
Lists(1).Add(13)
Lists(1).Add(481)

' Tu peux aussi recréer ta liste original pour faciliter sa manipulation:
Dim myStringList As List(Of String) = Lists(0)
myStringList.Add("Resalut")
myStringList.Add("ReBonjour")

' Identification du type des listes et affichage de leur contenu :
For Each List As IList In Lists
    If TypeOf (List) Is List(Of String) Then
       Console.WriteLine("Ceci est une liste de String, voici sont contenu:")
       For Each Value As String In List
           Console.WriteLine(Value)
       Next
    ElseIf
TypeOf (List) Is List(Of Integer) Then
       Console.WriteLine("Ceci est une liste de Integer")
       For Each Value As Integer In List
           Console.WriteLine(Value)
       Next
    ElseIf TypeOf (List) Is List(Of Char) Then
       Console.WriteLine("Ceci est une liste de Char")
       For Each Value As Char In List
           Console.WriteLine(Value)
       Next
    EndIf
Next

' Cela t'affiche:
' Ceci est une liste de String :
' Salut
' Bonjour
' Resalut
' ReBonjour
' Ceci est une liste de Integer :
' 13
' 481






1 2

Cette discussion est classé dans : problème, code, class, liste, form1


Répondre à ce message

Sujets en rapport avec ce message

Problème avec la fonction replace et l'utilisation de deux forms. [ par spy166 ] En vb6, imaginons que j'ai deux forms (Form1 et Form2), et que je veuille remplacer un string d'un texte situé première form, à partir d'éléments d'un Problème dans une liste [ par anthoda ] Bonjour,Je cherche comment faire pour cocher dans mon code la checkbox d'une checkedlistbox. J'arrive à détecter lorsqu'elles sont cochées ou non mais Problème de "chaîneS" [ par c00ol ] Salut à vous tous,Alors j'ai un problème qui m'ennuie assez, j'aimerais récupérer une liste de joueur d'un site mais je n'arrive à en récupérer que de Problème avec la désérialisation binaire [ par veler ] Salut,J'ai un piti problème avec la désérialisation :J'ai le code suivant :Dim myFileStream As IO.Stream = IO.File.OpenRead(tmp_NomCompletFichier)Dim VB.Net Problème avec un Condition If [ par JeffC1977 ] Salut J'ai un petit problème dans une condition. Ca me dit comme erreur dans le Debug:There is no source code available for the current location.Mon m Problème code VBA [ par h_adil ] Bonjour,j'ai un problème lorsque j'excute le code VBA ci dessous dans Excel.lorsque j'excute ce code, j'ai un message d'erreur :Erreur excution "3709" Problème avec mon code [ par Morrissey35 ] Bonjour, dans le code ci-dessous, lorsque je clique sur Ok, VB m'indique une erreur...parce qu'il n'arrive pas à lire la variable Fiche. Celle ci est Construction Object Class Problème [ par Myke ] Voici j'aimerais savoir si j'utilise la bonne technique.J'ai deux class comme suitPublic class UserPrivate _ListAutorisation As< Problème avec As Any [ par AgLS ] Bonjour, j'ai un vieux code en VB6 que j'ai fait passer en vb 2005.Mon problème c'est que Any n'est plus reconnu en vb 2005, j'ai besoin de pouvoir pa Petit problème Excel [ par Landoltp ] Bonjour,j'ai une question toute bête (suis débutant). j'ai fait un code qui fonctionne à partir d'inputbox, mais il faudrait qu'il marche à partir de


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,686 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.