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 :

[VB.Net] Comment integrer une énumération dans une bibliothèque de classe ?


Sujet :

VB.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut [VB.Net] Comment integrer une énumération dans une bibliothèque de classe ?
    Bonjour,
    j'ai créé une librairie de classes contenant une dizaine de modules de classes. Voici mon probleme : j'ai besoin de créer des énumérations et des structures qui ne sont liées à aucune classe en particulier (ou, autrement dit, qui sont communes à toutes les classes) mais qui doivent etre accessibles à n'importe quelle module de classe de la librairie.
    A quel endroit et comment définir ces structures ?

    Merci de votre aide.

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Comme pour les classes.
    Tu les définis dans un fichier, entouré d'un bloc namespace MonNamespace { ..}

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    OK. Je dois donc mettre ces définitions dans un nouveau module, c'est bien ça ? (Ajouter/Module... du menu contextuel du projet)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    J'ai fait comme tu m'as indiqué : j'ai créé un nouveau module et y ai mis mes énumérations, à l'intérieur d'un bloc Namespace / End Namespace. Seulement voilà : dans la classe qui utilise l'énumération en question, celle-ci est soulignée de bleu et le message d'erreur suivant s'affiche dans l'infobulle :
    'RequiredRes' (c'est le nom de ma propriété) ne peut pas exposer le type XXX (le nom de mon énumération) en dehors du projet au travers de la classe A.
    Comment cela se fait-il ?

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Il se fait que tu as dû commettre une erreur en appliquant la suggestion de Mose
    Donc dans l'explorateur de la solution > Click droit sur ta bibliothèque de classes (abandonnes le terme module stp çà sent trop le VB6 ) > Ajouter une classe > Remplace dans l'editeur le code généré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Public Class Class1
    End Class
    Par le code de ton enumération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Enum MonEnum
      'blablabla
    End Enum
    Et normalement celà devrait suffire en VB.Net, pour que tous les éléments de ta bibliothèques de Classes aient accès à cette Enumeration
    c'est en C# qu'il faut rappeler obligatoirement l'espace de noms considéré
    Profites en pour renommer également ton fichier qui a dû être généré sous la forme Class1.vb
    De la même façon tu peux créer un fichier pour chaque type de ta bibliothèque de classes, y compris par exemple une declaration de Delegate Sub ...EventHandler

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    OK. Merci pour ces précisions, ça marche impec.

  7. #7
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Ajouter Module ? Jamais vu ça ! C'est quoi ton IDE ? VS.Net ? Ca marche pas pareil que C# avec VB ? Y'a des menus en plus ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 265
    Points
    265
    Par défaut
    Je travaille sous VS 2005. Quand on crée un projet librairie de classes, un clic droit sur la solution propose un menu avec "Add class..." et "Add Module..."
    Voilà.

  9. #9
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    ok, merci pour la précision.

  10. #10
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Mose
    ok, merci pour la précision.
    C'est un vieux relent de vb6 (beurk ) alors oublie çà te servira pas, en gros c'est ce que fait déjà une classe en ayant que des membres static

  11. #11
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Ca a un rapport avec les Modules définis dans System.Reflection.Assembly.GetModules() ?

    J'ai jamais vraiment bien compris de quoi il s'agissait...

  12. #12
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Mose
    Ca a un rapport avec les Modules définis dans System.Reflection.Assembly.GetModules() ?.
    Non (et d'ailleurs pareil pour moi ) Sinon je parlais en fait de Microsoft.VisualBasic.<Module> , il doit y avoir aussi cette particularité de langage pour Delphi.Net mais absente pour le C#

    Pour ce dont tu fais la remarque, il s'agit de la Classe Module qui fait plutôt référence à un type d'architecture d'implémentations
    Citation Envoyé par MSDN
    Un module est un fichier exécutable portable de type .dll ou .exe comportant une ou plusieurs classes ou interfaces. Un module peut contenir plusieurs espaces de noms et un espace de noms peut s'étendre sur plusieurs modules.
    Un ou plusieurs modules déployés comme une unité composent un assembly.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2015, 17h52
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. Réponses: 1
    Dernier message: 04/04/2008, 12h14
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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