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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mathieu Francesch
Bonjour Jack,
Vous pouvez ajouter un Module à votre Class Library dans lequel vous créez vos différentes structures et énumérations qui auront Public pour modificateur d'accès.
Cela vous convient-il ?
-- Cordialement,
Mathieu Francesch
"Jack06" a écrit :
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.
Jack
Bonjour Jack,
Vous pouvez ajouter un Module à votre Class Library dans lequel vous créez
vos différentes structures et énumérations qui auront Public pour
modificateur d'accès.
Cela vous convient-il ?
--
Cordialement,
Mathieu Francesch
epsilon@neuf.fr
"Jack06" a écrit :
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 ?
Vous pouvez ajouter un Module à votre Class Library dans lequel vous créez vos différentes structures et énumérations qui auront Public pour modificateur d'accès.
Cela vous convient-il ?
-- Cordialement,
Mathieu Francesch
"Jack06" a écrit :
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.
Jack
Jack06
J'ai testé la création d'un module comme tu l'indiques, mais ça marche pas. Mais j'ai réussi à trouver : en fait, il faut ajouter une classe, supprimer le code Public Class / End Class et mettre à la place Public Enum et ça marche impec. Merci pour ton aide.
J'ai testé la création d'un module comme tu l'indiques, mais ça marche
pas. Mais j'ai réussi à trouver : en fait, il faut ajouter une classe,
supprimer le code Public Class / End Class et mettre à la place Public
Enum et ça marche impec.
Merci pour ton aide.
J'ai testé la création d'un module comme tu l'indiques, mais ça marche pas. Mais j'ai réussi à trouver : en fait, il faut ajouter une classe, supprimer le code Public Class / End Class et mettre à la place Public Enum et ça marche impec. Merci pour ton aide.
Mathieu Francesch
Bonjour Jack,
Pour ma curiosité, qu'est ce que cela vous génère comme erreur lorsque vous utilisez un module ? J'ai testé et apparement cela fonctionne ...
Exemple avec un module :
Module Echelon Enum Niveau bon = 1 moyen = 2 mauvais = 3 End Enum End Module
Public Class Eleve Public Function F_GET_NIVEAU_BON() As Integer Return Niveau.bon End Function End Class
Autrement avec une classe cela donnerait ceci :
Public Class Echelon Public Enum Niveau bon = 1 moyen = 2 mauvais = 3 End Enum End Class
Public Class Eleve Public Function F_GET_NIVEAU_BON() As Echelon.Niveau Return Echelon.Niveau.bon End Function End Class
Merci pour votre information.
-- Cordialement,
Mathieu Francesch
"Jack06" a écrit :
J'ai testé la création d'un module comme tu l'indiques, mais ça marche pas. Mais j'ai réussi à trouver : en fait, il faut ajouter une classe, supprimer le code Public Class / End Class et mettre à la place Public Enum et ça marche impec. Merci pour ton aide.
Bonjour Jack,
Pour ma curiosité, qu'est ce que cela vous génère comme erreur lorsque vous
utilisez un module ? J'ai testé et apparement cela fonctionne ...
Exemple avec un module :
Module Echelon
Enum Niveau
bon = 1
moyen = 2
mauvais = 3
End Enum
End Module
Public Class Eleve
Public Function F_GET_NIVEAU_BON() As Integer
Return Niveau.bon
End Function
End Class
Autrement avec une classe cela donnerait ceci :
Public Class Echelon
Public Enum Niveau
bon = 1
moyen = 2
mauvais = 3
End Enum
End Class
Public Class Eleve
Public Function F_GET_NIVEAU_BON() As Echelon.Niveau
Return Echelon.Niveau.bon
End Function
End Class
Merci pour votre information.
--
Cordialement,
Mathieu Francesch
epsilon@neuf.fr
"Jack06" a écrit :
J'ai testé la création d'un module comme tu l'indiques, mais ça marche
pas. Mais j'ai réussi à trouver : en fait, il faut ajouter une classe,
supprimer le code Public Class / End Class et mettre à la place Public
Enum et ça marche impec.
Merci pour ton aide.
Pour ma curiosité, qu'est ce que cela vous génère comme erreur lorsque vous utilisez un module ? J'ai testé et apparement cela fonctionne ...
Exemple avec un module :
Module Echelon Enum Niveau bon = 1 moyen = 2 mauvais = 3 End Enum End Module
Public Class Eleve Public Function F_GET_NIVEAU_BON() As Integer Return Niveau.bon End Function End Class
Autrement avec une classe cela donnerait ceci :
Public Class Echelon Public Enum Niveau bon = 1 moyen = 2 mauvais = 3 End Enum End Class
Public Class Eleve Public Function F_GET_NIVEAU_BON() As Echelon.Niveau Return Echelon.Niveau.bon End Function End Class
Merci pour votre information.
-- Cordialement,
Mathieu Francesch
"Jack06" a écrit :
J'ai testé la création d'un module comme tu l'indiques, mais ça marche pas. Mais j'ai réussi à trouver : en fait, il faut ajouter une classe, supprimer le code Public Class / End Class et mettre à la place Public Enum et ça marche impec. Merci pour ton aide.
Jack06
Voici ce qui ne marchait pas : j'avais ajouté un module (clic droit sur mon projet, option "Add Module...") avec mes énumérations : Module Structures Public Enum Ressources option1 option2 option3 End Enum End Module
Ensuite, dans ma classe : Public Class MaClasse Public Property RquiredRes() as Ressources ' le code End Property
Là, RequiredRes était souligné en bleu avec l'erreur suivante : "'RequiredRes' ne peut pas exposer le type Ressources en dehors du projet au travers de la classe MaClasse."
La solution : après clic droit sur mon projet, j'ai fait "Add Class..." (et non pas Add Module...), et j'ai supprimé les lignes Public Class Class1 / End Class. J'ai ensuite directement mis mes énumérations : Public Enum Ressources option1 option2 option3 End Enum
Je n'ai pas créé de classe Ressources, comme indiqué dans ton exemple.
Et ça marche impec. Voilà.
Voici ce qui ne marchait pas : j'avais ajouté un module (clic droit sur
mon projet, option "Add Module...") avec mes énumérations :
Module Structures
Public Enum Ressources
option1
option2
option3
End Enum
End Module
Ensuite, dans ma classe :
Public Class MaClasse
Public Property RquiredRes() as Ressources
' le code
End Property
Là, RequiredRes était souligné en bleu avec l'erreur suivante :
"'RequiredRes' ne peut pas exposer le type Ressources en dehors du
projet au travers de la classe MaClasse."
La solution : après clic droit sur mon projet, j'ai fait "Add Class..."
(et non pas Add Module...), et j'ai supprimé les lignes Public Class
Class1 / End Class. J'ai ensuite directement mis mes énumérations :
Public Enum Ressources
option1
option2
option3
End Enum
Je n'ai pas créé de classe Ressources, comme indiqué dans ton exemple.
Voici ce qui ne marchait pas : j'avais ajouté un module (clic droit sur mon projet, option "Add Module...") avec mes énumérations : Module Structures Public Enum Ressources option1 option2 option3 End Enum End Module
Ensuite, dans ma classe : Public Class MaClasse Public Property RquiredRes() as Ressources ' le code End Property
Là, RequiredRes était souligné en bleu avec l'erreur suivante : "'RequiredRes' ne peut pas exposer le type Ressources en dehors du projet au travers de la classe MaClasse."
La solution : après clic droit sur mon projet, j'ai fait "Add Class..." (et non pas Add Module...), et j'ai supprimé les lignes Public Class Class1 / End Class. J'ai ensuite directement mis mes énumérations : Public Enum Ressources option1 option2 option3 End Enum
Je n'ai pas créé de classe Ressources, comme indiqué dans ton exemple.
Et ça marche impec. Voilà.
Fred
dans : news:44de1dc3$0$18499$, Jack06 écrivait :
Je n'ai pas créé de classe Ressources, comme indiqué dans ton exemple.
Et ça marche impec. Voilà.
Bonsoir,
Extrait de la doc pour Enum
Declaration Context. An enumeration declared at module level, outside any procedure, is a member enumeration; it is a member of the class, structure, module, or interface that declares it. An enumeration declared at namespace level, outside any class, structure, module, or interface, is a member only of the namespace in which it appears.
Autrement dit, si ton Enum doit être visible par plusieurs classes d'un même espace de nom, il faut la déclarer au niveau de ce namespace.
Ce que tu as fait en supprimant la déclaration de classe d'un nouveau fichier vb dans le même projet. Tous les fichiers d'un même projet sont par défaut inclus dans le namespace du projet.
Tu pouvais donc également déclarer ton Enum dans n'importe lesquel de tes fichier vb mais *en dehors* de la déclaration de classe.
Au passage, il n'y pas équivalence entre fichier et classe/module. Tu peux très bien dans un même fichier regrouper plusieurs classes. Et maintenant avec vs 2005, il est même possible de faire le contraire : une classe répartie dans plusieurs fichiers avec la notion de classe partielle. C'est entre autre utilisé par le designer qui génère automatiquement des fichiers form.designer.vb pour chaune des forms créés.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
dans : news:44de1dc3$0$18499$636a55ce@news.free.fr,
Jack06 écrivait :
Je n'ai pas créé de classe Ressources, comme indiqué dans ton exemple.
Et ça marche impec.
Voilà.
Bonsoir,
Extrait de la doc pour Enum
Declaration Context. An enumeration declared at module level, outside
any procedure, is a member enumeration; it is a member of the class,
structure, module, or interface that declares it.
An enumeration declared at namespace level, outside any class,
structure, module, or interface, is a member only of the namespace in
which it appears.
Autrement dit, si ton Enum doit être visible par plusieurs classes d'un
même espace de nom, il faut la déclarer au niveau de ce namespace.
Ce que tu as fait en supprimant la déclaration de classe d'un nouveau
fichier vb dans le même projet.
Tous les fichiers d'un même projet sont par défaut inclus dans le
namespace du projet.
Tu pouvais donc également déclarer ton Enum dans n'importe lesquel de
tes fichier vb mais *en dehors* de la déclaration de classe.
Au passage, il n'y pas équivalence entre fichier et classe/module. Tu
peux très bien dans un même fichier regrouper plusieurs classes.
Et maintenant avec vs 2005, il est même possible de faire le contraire :
une classe répartie dans plusieurs fichiers avec la notion de classe
partielle. C'est entre autre utilisé par le designer qui génère
automatiquement des fichiers form.designer.vb pour chaune des forms
créés.
Je n'ai pas créé de classe Ressources, comme indiqué dans ton exemple.
Et ça marche impec. Voilà.
Bonsoir,
Extrait de la doc pour Enum
Declaration Context. An enumeration declared at module level, outside any procedure, is a member enumeration; it is a member of the class, structure, module, or interface that declares it. An enumeration declared at namespace level, outside any class, structure, module, or interface, is a member only of the namespace in which it appears.
Autrement dit, si ton Enum doit être visible par plusieurs classes d'un même espace de nom, il faut la déclarer au niveau de ce namespace.
Ce que tu as fait en supprimant la déclaration de classe d'un nouveau fichier vb dans le même projet. Tous les fichiers d'un même projet sont par défaut inclus dans le namespace du projet.
Tu pouvais donc également déclarer ton Enum dans n'importe lesquel de tes fichier vb mais *en dehors* de la déclaration de classe.
Au passage, il n'y pas équivalence entre fichier et classe/module. Tu peux très bien dans un même fichier regrouper plusieurs classes. Et maintenant avec vs 2005, il est même possible de faire le contraire : une classe répartie dans plusieurs fichiers avec la notion de classe partielle. C'est entre autre utilisé par le designer qui génère automatiquement des fichiers form.designer.vb pour chaune des forms créés.