IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

création d'une interface générique


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut création d'une interface générique
    Hello,

    J'aimerais créer une interface obligeant mes objets l'implémentant à avoir une propriété Id.

    Jusque là, pas de souci. Sauf que j'aimerais que le type de Id puisse être variable entre les types Byte, Short, Integer et Long.

    Est-ce possible ? Jusqu'ici, je me heurte au mur du typage...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Salut,

    Un petit exemple pour étayer.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Euh... Je mets cette discussion en stand-by. J'étais en train de détailler en expliquant, je crois que j'ai eu le déclic.

    Je teste et je viens donner un feedback

  4. #4
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Je vois comment faire pour laisser le choix de typage au codeur du dessous ...
    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
        Public Interface IFOO(Of T)
     
            Property id As T
     
        End Interface
     
        Public Class ClassInteger
            Implements IFOO(Of Integer)
     
            Public Property id As Integer Implements IFOO(Of Integer).id
     
        End Class
     
        Public Class ClassDouble
            Implements IFOO(Of Double)
     
            Public Property id As Double Implements IFOO(Of Double).id
     
        End Class
    Mais pour le limiter à seulement une poignée de type ...

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    J'étais en train de détailler en expliquant, je crois que j'ai eu le déclic.
    Ca, ça arrive souvent, lorsque l'on doit décrire un problème à quelqu'un, il faut reformuler clairement, et là, on perçoit la solution.
    Enfin le sujet est intéressant, on attend ton retour.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Ca, ça arrive souvent, lorsque l'on doit décrire un problème à quelqu'un, il faut reformuler clairement, et là, on perçoit la solution.
    Enfin le sujet est intéressant, on attend ton retour.
    Et oui ^^. Bon, c'est en cours mais là, j'devrais être parti depuis 1h alors j'arrête et je rentre me faire un barbec .

    La suite lundi !

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Pour contraindre le type, tu peux forcer le type du paramètre générique à l'aide du type Structure dans ton cas (struct en C#). Par contre ça va accepter d'autres types, comme par exemple le type Guid... Je n'ai pas trouvé plus restrictif.

    Voici un exemple :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Interface MyInterface(Of T As Structure)
     
    	Property Id As T
     
    End Interface

    Quand on implémente l'interface, ça donne ceci (avec pour l'exemple T de type Integer) :
    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
    Public Class MyClass
    	Inherits MyInterface(Of Integer)
     
    	Public Property Id As Integer
    		Get
    			Throw New System.NotImplementedException()
    		End Get
    		Set
    			Throw New System.NotImplementedException()
    		End Set
    	End Property
     
    End Class
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public interface Test<T>
    {
       public T Id { get; set; }
    }
    Un truc comme çà ?

    [Edit] Oups grillé (et mauvais langage en plus)

Discussions similaires

  1. Création d'une interface de saisie assistée
    Par ppipof2000 dans le forum WinDev
    Réponses: 9
    Dernier message: 16/01/2007, 11h13
  2. [Aide] Création d'une interface Ajout/Suppression
    Par Fredods26 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 19/10/2006, 14h16
  3. [Swing] Création d'une interface graphique SWING + MVC
    Par Sylmandel dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/04/2006, 09h03
  4. Réponses: 5
    Dernier message: 23/02/2006, 00h34
  5. [musique] création d'une interface pour se simplifier la vie
    Par Christophe93250 dans le forum Access
    Réponses: 8
    Dernier message: 08/01/2006, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo