USING |
Utiliser |
---|---|
C# (C Sharp) |
Syntaxe
using bibliotheque |
using (expression) { ... } |
Paramètres
Nom | Description |
---|---|
bibliotheque | Ce paramètre permet d'indiquer la bibliothèque à utiliser dans le code source. |
expression | Ce paramètre permet d'indiquer l'expression à évaluer. |
Description
Ce mot réservé permet de définir des alias dans des espaces de noms ou l'utilisation d'un objet dans un bloc.
Remarques
- Le mot clef using sert à importer des espaces de noms (namespaces) : Lorsque using est suivi du nom d'une bibliothèque ou d'un espace de noms, cela permet de rendre disponibles toutes les classes, interfaces et méthodes publiques de cet espace, sans devoir écrire leur nom complet à chaque fois.
- Grâce à using, le code devient plus clair et plus concis : Par exemple, au lieu d'écrire System.Console.WriteLine, on peut écrire using System; et utiliser directement Console.WriteLine. Cela améliore la lisibilité et réduit la verbosité, surtout dans les grands projets.
- using permet également de définir des alias pour des espaces de noms : On peut écrire par exemple using Dessin = MonProjet.Graphiques.Dessin;, ce qui facilite la navigation dans le code si plusieurs namespaces contiennent des types similaires. Cela est utile pour désambiguïser les classes homonymes.
- Le mot-clef using est aussi utilisé pour gérer automatiquement la libération de ressources : Lorsqu'il est suivi d'une expression dans une déclaration de bloc (using (var res = ...) { ... }), cela garantit que l'objet sera correctement disposé (appel à .Dispose()) à la fin du bloc, même en cas d'exception.
- La forme using (...) est généralement utilisée avec des objets implémentant l'interface IDisposable : Cela inclut les objets comme FileStream, SqlConnection ou StreamReader. C'est une manière élégante et sécurisée d'assurer la gestion des ressources non gérées, comme les fichiers ou les connexions réseau.
- Depuis C# 8.0, il existe une nouvelle forme de using dite "using declaration" : Elle permet d'écrire simplement using var fichier = new StreamReader("...");, sans bloc explicite. L'objet sera tout de même disposé automatiquement à la fin de la portée actuelle, ce qui rend le code encore plus fluide.
- La mauvaise utilisation de using pour les ressources peut entraîner des fuites mémoire : Oublier de libérer un objet IDisposable ou mal structurer un bloc using peut provoquer des problèmes de performance ou de saturation de ressources système. L'usage correct de using participe à la stabilité de l'application.
- Le mot clef using n'est pas interchangeable avec les directives de préprocesseur comme #include en C/C++ : Contrairement à un #include insérant du code, using n'ajoute pas du contenu au code source, mais permet d'accéder plus simplement à des types déjà compilés dans des assemblages référencés.
Exemple
Cet exemple permet de montrer un simple utilisation de ce mot réservé :
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data.SqlClient;
-
- namespace UsingSamples
- {
- class Program
- {
- static void Main(string[] args)
- {
- using (SqlConnection conn = new SqlConnection("Data Source=(local)\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True"))
- {
- // ...
- conn.Close();
- }
- }
- }
- }
Dernière mise à jour : Mardi, le 26 janvier 2016