none
Convertir une classe de base en une dérivée RRS feed

  • 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

    mercredi 21 juin 2017 08:55

Toutes les réponses

  • Bonjour Bernard,
    Pouvez-vous nous donner une partie de code plus complète?

    Cordialement,
    Nina


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

    jeudi 22 juin 2017 08:38
    Modérateur
  • 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

    jeudi 22 juin 2017 08:46