Auteur de questions
Convertir une classe de base en une dérivée

Discussion générale
-
Bonjour
J'ai une classe de base Pays
avec des classes dérivées France, Suisse, Belgique, etc.
J'ai le code suivant
Dim s as String = "France"
Select Case s
Case "France"
Dim P as New France
Case "Suisse"
Dim P as New Suisse
etc
Le problème est que P n'est plus disponible après le End SElect.
Si j'initialise un objet P en amont comment le convertir dans la classe dédiée?
Merci
Bernard
Bernard Bouree
- Type modifié Nina ZaekovaMicrosoft contingent staff, Moderator jeudi 10 août 2017 13:42
Toutes les réponses
-
Bonjour Bernard,
Pouvez-vous nous donner une partie de code plus complète?
Cordialement,
NinaMicrosoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.
-
Bonjour Nina
Voici un extrait plus complet.
Merci
Module Module1
Sub Main()
Dim def As New List(Of String)
def.Add("France")
def.Add("Belgique")
For Each d As String In def
Dim o As New Object
o = Detecter(d)
Console.WriteLine("Objet =" & o.ToString)
Console.WriteLine("Nom =" & o.nom)
'Select Case objectType
' Case ToponymeFr
' Console.WriteLine("CodeINSEE=" & o.CodeINSEE)
' Case ToponymeBe
' Console.WriteLine("CodeINS=" & o.CodeINS)
'End Select
Next
Console.ReadLine()
End Sub
Function Detecter(def As String) As Toponyme
Select Case def
Case "France"
Dim topo As New ToponymeFr
Return topo
Case "Belgique"
Dim topo As New ToponymeBe
Return topo
Case Else
Return Nothing
End Select
End Function
Public MustInherit Class Toponyme
Property Def As String
Property Nom As String
Property Code As String
Public Sub New(d As String)
Def = d
End Sub
Public Sub New()
End Sub
End Class
Public Class ToponymeFr
Inherits Toponyme
Property CodeINSEE As String
Public Sub New(d As String)
MyBase.New(d)
Nom = "France"
Code = "Fr"
CodeINSEE = d
End Sub
Public Sub New()
Nom = "France"
Code = "Fr"
End Sub
End Class
Public Class ToponymeBe
Inherits Toponyme
Property CodeINS As String
Public Sub New(d As String)
MyBase.New(d)
Nom = "Belgique"
Code = "Be"
CodeINS = d
End Sub
Public Sub New()
Nom = "Belgique"
Code = "Be"
End Sub
End Class
End Module
Bernard Bouree