Jujufouq
Messages postés254Date d'inscriptionjeudi 27 décembre 2001StatutMembreDernière intervention 5 mars 2006 20 oct. 2003 à 21:59
Salut, à force je finis par le savoir! Oui, c'est un peu faux (beaucoup si vous préférez) pour le "using" comparé au "include". Je finis par être au courant.
Il est faux sur le point que "include" (inclure en français ;-) ) est remplacée en C++ par le contenu du fichier à inclure lors de la compilation. En effet, le using n'est pas remplacé par un fichier. Il annonce seulement que le programme va utiliser des classes du .net framework, en en permettant ainsi l'acces. C'est ce que tu appelles un scotch.
Pour l'alias, perso je travaille seul, et même si tu ne trouve pas ça pratique pour ceux qui reprennent le code derrière toi, deux solutions : tu change ton alias pour qu'il soit explicite, soit tu leur expliquent que il y a la définition au début de la source, au cas où ils ne le sauraient pas. :-]
Dans tous les cas, que tu appelles ça du scotch ou ce que tu veux, cela n'empêche pas qu'il (using) puisse servir à créer des alias. Il a aussi été prévu pour cette fonction.
Voilà, "merci" quand même pour ton commentaire.
eLord
Messages postés1Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention20 octobre 2003 20 oct. 2003 à 13:35
Bonjour Jujufouq,
je débute également en C#, mais ai qq. années d'expérience en C++.
Après vérification, je pense que ta comparaison avec C++ est un peu confuse, or ce mail s'adressant à des débutants, il est important à mon avis d'être clair.
Je vais essayer…
En C#, le "using" est équivalent au "using" du C++, et surtout pas au "include", qui lui est quasi-"automatique" en C#, du moins fait autrement !
Cette instruction a donc 2 utilisations :
- en tant qu'alias : cela correspond à tes exemples de code no3 et no4. Pour ma part, je considère cela comme un "scotch", une rustine pour masquer souvent des défauts de conception. Si ton nom de classe est trop long, change le ! Et si c'est une librairie externe sur laquelle tu n'as pas de contrôle, et bien au moins c'est identifiable. Sur ce dernier point, il faut penser à ceux qui arrivent derrière toi, et qui tombent sur un alias : où trouver sa signification ???....
- la deuxième signification du using, est la "directive", qui permet d'utiliser les classes d'un namespace, sans répéter le namespace à chaque fois ! Encore une fois, cela est à utiliser avec précaution : une trop forte utilisation du "using", peut masquer de nombreuses dépendances inter-namespaces (inter-modules) et donc un défaut de conception ! Par exemple, quand tu as trop souvent de namespace à écrire avant le nom de ta classe, c'est que ta classe n'est peut-être pas dans le bon namespace !....
Voila,
j'espère avoir clair ?!
J.
Jujufouq
Messages postés254Date d'inscriptionjeudi 27 décembre 2001StatutMembreDernière intervention 5 mars 2006 11 oct. 2003 à 21:04
Salut. Pour te répondre : en quelque sorte oui. Cependant, dans un namespace, il peut y en avoir un autre qui en contient un troisième... et ainsi de suite. Comme son nom l'inqieu, c'est un espace de nom. Dedans, tu peux créer un objet avec ses méthodes , des propriétés etc... pour moi aussi c'était nouveau ce concept, mais c'est pas dur tu verras. Bon travail ;-)
malger
Messages postés4Date d'inscriptionjeudi 2 octobre 2003StatutMembreDernière intervention29 octobre 2003 11 oct. 2003 à 04:46
Je suis développeur Java et je débute en C#.
Si je comprends bien tes exemples, le terme "namespace" correspond donc à "package" en Java ?
gg00xiv
Messages postés656Date d'inscriptionmercredi 22 août 2001StatutMembreDernière intervention11 mars 200513 17 sept. 2003 à 20:37
La dernière formule est interessante pour les noms de namespace à ralonge.
Merci
20 oct. 2003 à 21:59
Il est faux sur le point que "include" (inclure en français ;-) ) est remplacée en C++ par le contenu du fichier à inclure lors de la compilation. En effet, le using n'est pas remplacé par un fichier. Il annonce seulement que le programme va utiliser des classes du .net framework, en en permettant ainsi l'acces. C'est ce que tu appelles un scotch.
Pour l'alias, perso je travaille seul, et même si tu ne trouve pas ça pratique pour ceux qui reprennent le code derrière toi, deux solutions : tu change ton alias pour qu'il soit explicite, soit tu leur expliquent que il y a la définition au début de la source, au cas où ils ne le sauraient pas. :-]
Dans tous les cas, que tu appelles ça du scotch ou ce que tu veux, cela n'empêche pas qu'il (using) puisse servir à créer des alias. Il a aussi été prévu pour cette fonction.
Voilà, "merci" quand même pour ton commentaire.
20 oct. 2003 à 13:35
je débute également en C#, mais ai qq. années d'expérience en C++.
Après vérification, je pense que ta comparaison avec C++ est un peu confuse, or ce mail s'adressant à des débutants, il est important à mon avis d'être clair.
Je vais essayer…
En C#, le "using" est équivalent au "using" du C++, et surtout pas au "include", qui lui est quasi-"automatique" en C#, du moins fait autrement !
Cette instruction a donc 2 utilisations :
- en tant qu'alias : cela correspond à tes exemples de code no3 et no4. Pour ma part, je considère cela comme un "scotch", une rustine pour masquer souvent des défauts de conception. Si ton nom de classe est trop long, change le ! Et si c'est une librairie externe sur laquelle tu n'as pas de contrôle, et bien au moins c'est identifiable. Sur ce dernier point, il faut penser à ceux qui arrivent derrière toi, et qui tombent sur un alias : où trouver sa signification ???....
- la deuxième signification du using, est la "directive", qui permet d'utiliser les classes d'un namespace, sans répéter le namespace à chaque fois ! Encore une fois, cela est à utiliser avec précaution : une trop forte utilisation du "using", peut masquer de nombreuses dépendances inter-namespaces (inter-modules) et donc un défaut de conception ! Par exemple, quand tu as trop souvent de namespace à écrire avant le nom de ta classe, c'est que ta classe n'est peut-être pas dans le bon namespace !....
Voila,
j'espère avoir clair ?!
J.
11 oct. 2003 à 21:04
11 oct. 2003 à 04:46
Si je comprends bien tes exemples, le terme "namespace" correspond donc à "package" en Java ?
17 sept. 2003 à 20:37
Merci