none
Liste d'interface RRS feed

  • Question

  • Bonjour

    J'ai le code suivant que je n'ai pas encadré de balise code car cela le format tout sur une seule ligne!

    comment faire pour faire fonctionner le P.print de la boucle for each de Main?

    Merci

    Bernard

    Imports System.Collections.Generic
    Imports TestInterface

    Module Module1

        Interface IPays
            Property NomPays As String
            Property CodePays As String
        End Interface

        Class France
            Implements IPays
            Public Sub New()
                NomPays = "France"
                CodePays = "Fr"
            End Sub

            Public Property NomPays As String Implements IPays.NomPays
            Public Property CodePays As String Implements IPays.CodePays
            Public Property Commune As String
            Public Property CodeINSEE As String
            Public Sub Print()
                Console.WriteLine("France : " & NomPays & " " & CodePays)
            End Sub
        End Class

        Class Belgique
            Implements IPays
            Public Sub New()
                NomPays = "Belgique"
                CodePays = "Be"
            End Sub

            Public Property NomPays As String Implements IPays.NomPays
            Public Property CodePays As String Implements IPays.CodePays
            Public Property Localite As String
            Public Property CodeINS As String
            Public Sub Print()
                Console.WriteLine("Belgique : " & NomPays & " " & CodePays)
            End Sub
        End Class

        Sub Main()
            Dim Fr As New France
            Dim Be As New Belgique

            Dim listePays As New List(Of IPays)
            listePays.Add(Fr)
            listePays.Add(Be)

            PrintP(Fr)
            PrintP(Be)

            Fr.Print()
            Be.Print()

            For Each p As IPays In listePays
                p.print
            Next

            Console.ReadLine()
        End Sub
        Public Sub PrintP(IPays As IPays)
            Console.WriteLine(IPays.NomPays & " " & IPays.CodePays)
        End Sub

    End Module


    Bernard Bouree

    mardi 6 juin 2017 15:19

Réponses

  • Bonjour,

    Modifiez le code de l'interface IPays par celui-ci : 

    Public Interface IPays
    	Property NomPays() As String
    	Property CodePays() As String
    	Sub Print()
    
    End Interface

    Et celui de la boucle foreach par celui-ci : 

    For Each p As IPays In listePays
    	p.Print()
    Next
    

    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    mercredi 7 juin 2017 08:33

Toutes les réponses

  • Bonjour,

    Modifiez le code de l'interface IPays par celui-ci : 

    Public Interface IPays
    	Property NomPays() As String
    	Property CodePays() As String
    	Sub Print()
    
    End Interface

    Et celui de la boucle foreach par celui-ci : 

    For Each p As IPays In listePays
    	p.Print()
    Next
    

    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    mercredi 7 juin 2017 08:33
  • Bonjour,

    Je code pas en VisualBasic, mais, il me semble qu'il y a une erreur dans la déclaration de la fonction PrintP

    Public Sub PrintP(IPays As IPays)

    Vous déclarer une variable du même nom que l'interface!!!

    Nourdine a raison, vous pouvez faire

    Public Sub PrintP(P as IPays)

    Vous ne pouvez pas appeler la fonction Print depuis l'interface IPays puisqu'elle n'est pas définie dans cette interface mais dans la classe.

    Incluez la signature de la fonction Print dans l'interface IPays.

    Cordialement

    Gérard

    mercredi 7 juin 2017 09:15