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

ASP.NET Discussion :

Comment faire une liste de paramettre dans une fonction


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut Comment faire une liste de paramettre dans une fonction
    Bonjour

    Je suis conscient que cette question est bizarre et quand vous aurez lu la description vous allez me jeter des tomates (faite gaffe elles sont encore chère à la saison) mais je ne trouve pas le truc dans la MSDN parce que je ne sais pas comment ça s'appelle.

    Bref, j'ai fait une fonction comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Shared Function GetPage(ByVal NomPage As String, ByVal TypeRetour As String) As String
           'peu importe le code
    End Function
    Ce que je voudrais c'est que lorsque j'appelle la fonction, au moment où je dois définir le paramettre "TypeRetour" il me propose une liste de chose prédéfinie, qui seront traitées comme des String.

    Voilà, c'est ça que je ne sais pas faire, parce que je ne sais pas comment ça s'appelle.

    Pouvez vous m'aider ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    En gros tu veux que l'intellisense te propose les valeurs possibles du paramètre ? C'est fait automatiquement pour les types Enum, mais sinon je ne pense pas que ce soit possible...

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ouais, c'est exactement ça que je voudrais faire.
    Donc, si je comprends ce que tu dis, c'est vers le type Enum qu'il faut que je me dirige.

    Saurais tu comment ça marche ?

  4. #4
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Je crois que j'ai trouvé ce qu'il me faut.

    Au dessus de ma fonction j'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Enum enTypeRetour
    	lien
    	num
    End Enum
    Puis dans ma fonction j'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Shared Function GetPage(ByVal NomPage As String, ByVal TypeRetour As enTypeRetour) As String
    Select Case TypeRetour
    	Case Outils.enTypeRetour.lien
    Outils, c'est le nom de ma Class

    Et ça marche bien. L'intellisense me propose la totalité de l'Enum et le test dans le Select Case marche bien.

    Merci pour ton aide.

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Euh, j'ai cliqué résolu trop vite.
    J'ai une question subsidiaire que j'ai pas trouvé dans la MSDN : est ce qu'on peut remplir une Enum avec une DataTable (par exemple), enfin avec des données provenant de la base, genre une remplissage dynamique de l'Enum ?

    Si oui, comment ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Non, un enum n'est pas dynamique...
    Mais bon, tu veux que VS te propose pendant le développement de choisir des valeurs qui ne seront disponibles qu'à l'exécution... faut pas trop en demander quand même

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Par contre tu pourrais utiliser un outil qui te génère l'enum en fonction de la base de données. Mais là, on rentre dans les DSL, et c'est une complexité très (très) supérieure (sauf le respect que je porte à tes compétences bien évidemment).

  8. #8
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    J"ai déjà vu un code tout fait sur CodeProject.
    Cherches, tu devrais le trouver

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    C'est pas forcément si compliqué... évidemment, en faisant un add-in pour VS c'est pas évident, mais avec les macros on peut faire pas mal de choses, y compris générer du code.

  10. #10
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci les gars.

    Alors, pour simplifier l'idée, car je me rends compte que je me suis mal exprimé, c'est SaumonAgile qui est le plus proche.
    L'idée c'est effectivement d'aller cherche le contenu de l'Enum dans la BDD.

    Mais bon si c'est compliqué, c'est pas trés grave. Ma question était surtout empirique car je n'ai pas de cas précis à traiter.

    Je viens juste de découvrir comment marche l'Enum, faudrait que je l'exploite en peu plus pour voir où sont ses limites.

    Donc, vraiment un grand merci à tous.

    PS : SaumonAgile, t'inquiète, étant doté d'un grand sens de l'humour et sachant que ton niveau est bien supérieur au mien, lorsque tu dis que c'est compliqué, je comprends que tu le dis par rapport à ce que tu sais que je sais faire. Avec LuteceFalco vous êtes une sorte de "référence" pour moi.

    Ce qui n'enlève rien à la qualité des réponses que le autres copains me font et au plaisir que j'ai de les lire. Mais il serait peut être long et inadapter de les citer tous ici.

  11. #11
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est pas forcément si compliqué... évidemment, en faisant un add-in pour VS c'est pas évident, mais avec les macros on peut faire pas mal de choses, y compris générer du code.
    C'est évident, tu peux faire un générateur tout simple à base de Console.Writeline(), mais quand on parle génération de code, je pense tout de suite "réutilisation, extensibilité, etc". zooffy semblant privilégier les solutions "long terme", je préférais lui donner une approche complexe mais ultra enrichissante du point de vue "montée en compétence", plutot qu'une solution ponctuelle.
    Cela dit, je respecte toutes les solutions, et dans le cas présent, c'est une simple question de temps à disposition.

    Pour résumer, si c'est simplement une histoire de générer une bête enum, un petit outil vite fait est suffisant. Par contre, si cette génération intervient dans un process plus vaste de génération de code à partir d'une base métier, là, le concept de DSL prend toute son importance.

  12. #12
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben, en fait oui, Saumon agile, tu décris bien ce que je souhaite.
    Mais bon, pour l'instant je vais utiliser ça normalement, je verrais ensuite si je peux avoir besoins d'un truc plus "dynamique".
    Parce que, en réfléchissant, si on utilise une Enum, c'est souvent pour avoir des valeurs fixes, qui vont trés souvent être utilisée en dur dans le code. Donc les rendre dynamique, donc modifiable peut s'avérer dangereux.

    Maintenant, je suis sûr qu'un jour je vais tomber sur le cas où j'aurais bien besoins de ce genre de chose.

    J'aurais une question : c'est quoi DSL ?

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par zooffy Voir le message
    J'aurais une question : c'est quoi DSL ?
    Je me suis posé la même question... d'abord j'ai cru qu'il parlait de l'extensibilité de VS, mais j'ai trouvé ça :
    http://fr.wikipedia.org/wiki/Domain-...mming_language

  14. #14
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Comme dit précédemment, il s'agit de Domain Specific Language. C'est un concept très théorique, mais dont on peut voir plusieurs applications dans visual studio. Par exemple, la fenêtre graphique qui permet de "designer" des classes (hierarchie, propriétés, méthodes, etc) est un DSL. Le designer des fichiers dbml (.NET 3.5) est aussi un DSL.
    Plus fort encore, l'outil dans VS qui permet de créer ses propres DSL est lui-même un DSL.

    Dans VS, au final, un DSL, c'est une interface pour modéliser associée à un système de génération de code (résultant ce qui a été créé dans l'interface).

  15. #15
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ces éclaircissements.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Utiliser valeur d'une liste de choix dans une liste déroulante d'un autre formulaire
    Par Sébastien1609 dans le forum Macros Access
    Réponses: 1
    Dernier message: 11/06/2015, 15h31
  2. Réponses: 9
    Dernier message: 21/05/2014, 20h21
  3. [LibreOffice][Base de données] Recuperer une liste de tables et une liste de champs d'une table sur LibreOffice & OpenOffice
    Par gerard.sauvage dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 08/04/2014, 12h35
  4. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  5. Réponses: 0
    Dernier message: 09/11/2010, 15h43

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