cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008
-
10 août 2006 à 16:28
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
10 août 2006 à 21:21
Bonjour,
je m'interroge sur l'utilité des namespaces dans les librairies.
Prenons par exemple une librairie MyLibrary. Dans un fichier ClassesType1.cs, j'ai :
namespace ClassesType1
{
class Class1
{
}
class Class2
{
}
...
}
Pourquoi ne pas écrire simplement :
class Class1
{
}
class Class2
{
}
...
L'avantage que je vois dans cette simplification d'écriture est que une fois la librairie liée dans un projet (MyLibrary.dll ajouté comme référence), on n'a plus à préciser using ClassesType1 dans le projet. On peut directement utiliser les classes dans celui-ci. Y a t-il des inconvénient à faire celà ? Si non quelle est alors l'utilité des namespaces ?
Mathmax
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 10 août 2006 à 16:50
un exemple bête... pour rejoindre la réponse de Bidou...
imagine que tu es envie de créer un object Button... tu fais comment pou le nommer... Button existe déjà dans le framework.
bref, les namespaces permettent d'une d'éviter les doublons, et d'autres par de mettre dans des catégories les classes qu'elles contiennent. Ainsi, la classe DNS ne se retrouve pas avec la classe ListView.
cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008 10 août 2006 à 18:20
Merci pour vos réponse. Je n'avais pas pensé au risque de doublons. Pour regrouper les classes selon leurs fonctions, je mettais dans des fichiers différents : un fichier xml.cs pour les classes ayant un rapport avec le xml, un fichier web.cs pour celle ayant à voir avec le web...
Ce qui serait bien, c'est si l'on pouvait importer dans un projet seulement un namespace de la librairie et non la librairie toute entière. Par exmple importer MyLibrary.ClassesType1.dll et eviter ainsi de préciser using ClassesType1. Est-ce possible ?
cs_mathmax
Messages postés403Date d'inscriptionvendredi 28 octobre 2005StatutMembreDernière intervention31 août 2008 10 août 2006 à 21:13
Ok. Encore une petite question si vous voulez bien : Préférez-vous créer une librairie qui rassemble toutes vos classes générales (en les séparant éventuellement par des namespaces) ou regrouper vos classes en plusieurs librairies contenant chacune un namespace ?
J'ai peur qu'avec la première solution que, une fois compilé, le projet utilisant la librairie ne soit finalement alourdit inutilement avec des classes qu'il n'utilise pas. Le compilateur compile t-il aussi les classes non utilisées ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201360 10 août 2006 à 21:21
Ben moi je fais une libraire qui doit contenir tout ce qu'elle doit, 20 namespaces s'il le faut. Mais en tout cas, ça reste UN projet que tu peux ajouter dans une solution pour debugger ou juste référencer si c'est pour l'utiliser...
Je ne sais pas comment être plus clair ??!