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....
Partager