IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

[VB.NET 2.0] Extension à List(Of T)


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 79
    Par défaut [VB.NET 2.0] Extension à List(Of T)
    bonjour,

    Bon, je sais pas trop comment expliquer ce que je veux, alors un exemple devrait faire.

    Je veux d'abord une classe mustinherits d'objet qui contient des propriétés de base, par exemple:

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public MustInherits Class ItemListEx
    Private _name as string
    Private _number as Integer
    Private _parent as ListEx(Of ItemListEx)
     
    Public Property Name() as String
       Get/Set _name
     
    Public ReadOnly Property Number() As Integer
       Get
           If _Parent IsNot Nothing then
              Return _Parent.IndexOf(Me) + 1
           Else :  Return -1 
           End If
       End Get
    End PRoperty
    End CLass

    Et une collection contenant les ItemList pour laquelle il y aura des méthodes supplémentaire, par exemple:
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Public MustInherit Class ListEx(Of T)
    Inherits List(Of ItemListEx)
     
    Public Function NameExists(name as string) as Boolean
       For each obj as ItemListEx in Me
            if obj.name = name then return true
       next obj
       return false
    end Function
     
    Public Function NameExists(name as string, excludedObject) as Boolean
      For each obj as ItemListEx in Me
          if obj Is excludedObject then
             Continue For
          else
              if obj.name = name then return true
          end if
      next obj
      return false
    End function
    End Class

    À partir de ces deux classes, je veux en créer plusieurs, par exemple ceci:
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'collection typée basée sur ListEx
    Public Class Betons
      Inherits ListEx(Beton)
    End Class
     
    Public Class Beton
      Inherits ItemListEx
      Private _density as Single
     
      Public Property Density
          Get/Set _density
    End Class

    Afin que les méthodes/propriétés de BETON soit accessible par l'objet Item de BETONS, sans faire de cast. Donc que .Density, .Number, .Name soit accessible à partir de Betons(Index)

    Mais, ça ne fonctionne pas vraiment....

  2. #2
    Membre actif
    Inscrit en
    Février 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 79
    Par défaut
    J'ai finalement trouvé.

    Il s'agit d'utiliser les constraints. Ma classe ListEx doit donc être déclarée plutôt comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public MustInherit Class ListEx(Of T As ItemListEx)
    Inherits List(Of ItemListEx)
    Donc les collections qui hériterons de ListEx, devront avoir comme type T des objets qui eux-même hérite de ItemListEx.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Excel] ComboBox - extension liste via macro
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/01/2007, 21h43
  2. [Vb.net] Comment faire une liste à partir d'une string
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/10/2006, 14h15
  3. [VB.NET] Comme créer une liste constante ?
    Par BouB dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/10/2006, 14h01
  4. Réponses: 4
    Dernier message: 07/06/2006, 14h59
  5. [VB.NET] [Débutant] : tableau ou liste?
    Par alx3d dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/05/2006, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo