Bonjour.

Avant toutes choses desole si j'ecris aucun accent mais je suis sur un clavier qwerty.

Je viens de commencer l'ASP.NET avec du VB.NET et j'ai un probleme de castage que je n'arrive pas a resoudre.

J'ai une classe abstraite:

Code : 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
 
Public MustInherit Class DKDropDownMenuItem
 
    Private m_oDBAccess As clsDBAccess
    Private m_sLastError As String
 
#Region "Get Methods"
    'This function returns the last error that occurred
    Public Function GetLastError() As String
 
        'Fairly simple, just return the string.
        Return m_sLastError
 
    End Function
 
    ' abstract method: This function will return an HTML DropDowmMenuItem'
    Public MustOverride Function GetDropDownMenuItemPanel() As Panel
 
 
#End Region
End Class
Et une classe qui implemente cette classe abstraite

Code : 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
Public Class clsSponsor
    Inherits DKDropDownMenuItem
 
 
#Region "Private Fields"
    Private m_idSponsor As Integer
    Private m_idLevel As Integer
    Private m_renewDate As DateTime
    Private m_description As String
    Private m_website As String
    Private m_logo As String
    Private m_businessDescription As String
    Private m_name As String
    Private m_activeFlag As Char
#End Region
 
#Region "Implement abstract method"
 
    Public Overrides Function GetDropDownMenuItemPanel() As Panel
        Dim aPanel As New Panel
 
        ' Begin of the display
        aPanel.Controls.Add(New LiteralControl("<div id=" + m_idSponsor + ">"))
 
        ' Begin of the title section
        aPanel.Controls.Add(New LiteralControl("<div>"))
 
        aPanel.Controls.Add(New LiteralControl(m_name))
 
        ' End of the title section
        aPanel.Controls.Add(New LiteralControl("</div>"))
 
        ' End of the display
        aPanel.Controls.Add(New LiteralControl("</div>"))
 
        Return Nothing
    End Function
 
#End Region
 
 
End Class
Dans un troisieme classe je creer une liste du type de ma classe abstraite et une methode pour ajouter un objet:

Code : 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
 
Public Class DKDropDownMenu
 
    Private m_oDBAccess As clsDBAccess
    Private m_sLastError As String
    Private m_myItems As New System.Collections.Generic.List(Of DKDropDownMenuItem)
 
    'This function adds a DKDRopDowmMenuItem on the list
    Public Function addItem(ByVal item As DKDropDownMenuItem) As Integer
 
        m_myItems.Add(item)
        Return m_myItems.Count
 
    End Function
 
End class
Ma classe clsSponsor herite bien de DKDropDownMenuItem. Je devrais donc bien pouvoir l'ajouter dans la liste. Or lorsque je fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Dim ddMenu As New DKDropDownMenu
        Dim sector As New clsSector
        sector.name = "test"
        sector.idSector = 1
 
        ddMenu.addItem(sector)
J'ai l'erreur suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Value of type 'clsSector' cannot be converted to 'DKDropDownMenuItem'.
Quelqu'un a une idee ?