begin process at 2010 02 09 23:48:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.NET

 > A QUOI SERT LE MOT CLÉ USING

A QUOI SERT LE MOT CLÉ USING


 Information sur la source

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :.NET Source .NET ( DotNet ) Classé sous :namespace, using Niveau :Débutant Date de création :17/09/2003 Date de mise à jour :17/09/2003 13:41:14 Vu :6 655

Auteur : Jujufouq

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Bonjour tout le monde ;-)

Je m'adresse là encore aux débutants, bienqu'il soit possible que les balèzes du C# ne se servent que "machinellement" de ce mot clé.

Qu'est-ce que "using"?

Vous aurez sûrement entendu parler des espaces de noms, ou en anglais namespaces, sans peut-être savoir ce qu'ils sont. Pour connaître l'utilité de using, il vous faudra cependant comprendre les espaces de noms.

Les espaces de noms n'est pas une nouveauté de C#. C++ et Java les utilisent déjà. On les utilisent en C++ avec l'instruction "#include" et en Java par "import". Je ne vais pas me casser la tête à expliquer ça. ;-)

Using est l'équivalent de #include et de import. L'exemple 1 démontre la manière la plus courante d'utiliser using. Cf. l'exemple n°1

C# comprend les deux écritures, celles de l'exemple n°1 et 2. Il n'est donc pas nécessaire d'utiliser toujours le mot using. Contrairement à C++ et à Java, si je ne m'abuse  ;-)

Ceci dit, using ne se limite pas à cette utilisation. Regardez le bout de code Exemple n°3. En temps normal, nous aurions tendance à appeler cette la "ClasseInterne" de la façon "Societe.Dept.Project.ClasseInterne". Avec C#, il est possible de créer un alias, permettant d'attribuer une sorte de "raccourci" à cette classe, de façon à ce que son nom soit plus parlant pour nous, et biensûr, beaucoup plus court que d'écrire toute la hiérarchie...
Voire l'Exemple n°4

Source

  • // Exemple n°1
  • using System;
  • Console.WriteLine("Hello World");
  • // Exemple n°2
  • System.Console.WriteLine("Hello World");
  • // Exemple n°3 (tiré d'un livre, donc pas de moi)
  • namespace Societe {
  • namespace Dept {
  • namespace Projet {
  • class ClasseInterne {
  • }
  • }
  • }
  • }
  • // Exemple n°4 (tiré d'un livre, donc pas de moi)
  • using NSI=Societe.Dept.Projet
  • NSI.ClasseInterne
  • // (au lieu de "Societe.Dept.Projet.ClasseInterne")
// Exemple n°1

    using System;
    Console.WriteLine("Hello World");






// Exemple n°2

    System.Console.WriteLine("Hello World");





// Exemple n°3 (tiré d'un livre, donc pas de moi)
namespace Societe {
    namespace Dept {
        namespace Projet {
            class ClasseInterne {
            }
        }
    }
}



// Exemple n°4 (tiré d'un livre, donc pas de moi)
using NSI=Societe.Dept.Projet
NSI.ClasseInterne

// (au lieu de "Societe.Dept.Projet.ClasseInterne")

 Conclusion

Voilà, j'ai pris l'exemple seulement d'un bouquin. J'espère que cela vous sera utile, et j'attends vos commentaiers si nécessaire ;-)

Voilà, bonne prog à toutes et à tous!


 Sources du même auteur

Source .NET (Dotnet) LA CONSOLE ET SES FONCTIONS IMPORTANTES

 Sources de la même categorie

Source avec Zip CHAT SERVER-CLIENT par abderrahmenbilog
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMULATION DE CONSOLE POUR WINDOWS MOBILE par originalcompo
Source avec Zip Source .NET (Dotnet) BASE DE DONNÉES EN XML par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLECONV - APPLICATION DE CONVERSION MONÉTAIRE AVEC TAUX E... par Jeffrey_
Source avec Zip Source .NET (Dotnet) TRAITEUR D'IMAGE (MINI) par ycyril

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) UTILISER (ET SIMPLIFIER) UN READERWRITERLOCKSLIM AVEC USING ... par TheManu
Source avec Zip Source avec une capture Source .NET (Dotnet) TESTEUR DE REQUÊTES XPATH par nseveno

Commentaires et avis

Commentaire de gg00xiv le 17/09/2003 20:37:08

La dernière formule est interessante pour les noms de namespace à ralonge.
Merci

Commentaire de malger le 11/10/2003 04:46:24

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 ?

Commentaire de Jujufouq le 11/10/2003 21:04:20

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 ;-)

Commentaire de eLord le 20/10/2003 13:35:09

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.

Commentaire de Jujufouq le 20/10/2003 21:59:24

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

erreur namespace???? [ par othland ] slt tlm,j'avais un code source que je voualis essayer!j'ai créer une application console (File-->New project-->Console application)puis j'a Word C# [ par pete87150 ] Bonjour,Je voudrais savoir comment ouvrir un document Word en C#, quelle référence ou directive utiliser etc.Voici mon code simplifié qui ne marche pa Erreur dont j'arrive pas a me débarrasser [ par patemino ] En C# avec #developusing System;using System.Windows.Forms;using System.IO;Dans une classe nommée repertoire :public class Répertoire {p Souci avec placeholder [ par MorpionMx ] Bonjour, J'ai un petit souci de placeholder qui n'affiche aucun controle.Pourtout, ca doit etre si simple, je me demande ce que je fais pas bien.J'ai communication entre 2 classes du meme namespace [ par Killan ] salut,ma demande est sur un procédé de communication entre 2 classes du meme namespace mais je ne comprend pasj'ai une form et dedan j'ai une textboxd Probléme de "Data". [ par TmDsbsBs ] Bonjour, j'ai un problème avec le "Data" (erreur : "Le type ou le nom d'espace de noms "Data" n'existe pas dans la classe ou l'espace de nim "System" Remplir DropDownList [ par TmDsbsBs ] Bonjour, c'est encore moi. Je suis peut-être un peu lourd à poser toujours les mêmes questions, mais je ne trouve pas de solutions et ca commence à de Problème de bouton [ par TmDsbsBs ] J'ai une liste déroute dans laquelle je choisis une ligne, et je valide par OK. Ensuite, j'ai une seconde liste déroulante ainsi qu'un nouveau bouton Multi threading using TCP and socket [ par gdupasqu ] Bonjour,je suis entrain d'écrire un programme (client et serveur).Le serveur fonctionne comme ceci: 1. Le serveur écoute sur un port fixé. 2. Lorsqu'u Multi Threading en utilisant TCP [ par gdupasqu ] Bonjour,je suis entrain d'écrire un programme (client et serveur).Le serveur fonctionne comme ceci:1. Le serveur écoute sur un port fixé.2. Lorsqu'un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales