Recherche…


Remarques

Le mot-clé using est à la fois une directive (cette rubrique) et une instruction.

Pour l'instruction using (c.-à-d. Pour encapsuler la portée d'un objet IDisposable , en veillant à ce qu'en dehors de cette portée, l'objet soit proprement éliminé), veuillez vous reporter à Utilisation de l'instruction .

Utilisation de base

using System;
using BasicStuff = System;
using Sayer = System.Console;
using static System.Console;  //From C# 6

class Program
{
    public static void Main()
    {
        System.Console.WriteLine("Ignoring usings and specifying full type name");
        Console.WriteLine("Thanks to the 'using System' directive");
        BasicStuff.Console.WriteLine("Namespace aliasing");
        Sayer.WriteLine("Type aliasing");
        WriteLine("Thanks to the 'using static' directive (from C# 6)");
    }
}

Référence à un espace de noms

using System.Text;
//allows you to access classes within this namespace such as StringBuilder
//without prefixing them with the namespace.  i.e:

//...
var sb = new StringBuilder();
//instead of
var sb = new System.Text.StringBuilder();

Associer un alias à un espace de noms

using st = System.Text;
//allows you to access classes within this namespace such as StringBuilder
//prefixing them with only the defined alias and not the full namespace.  i.e:

//...
var sb = new st.StringBuilder();
//instead of
var sb = new System.Text.StringBuilder();

Accéder aux membres statiques d'une classe

6,0

Vous permet d'importer un type spécifique et d'utiliser les membres statiques du type sans les qualifier avec le nom du type. Cela montre un exemple utilisant des méthodes statiques:

using static System.Console;

// ...

string GetName()
{
    WriteLine("Enter your name.");
    return ReadLine();
}

Et cela montre un exemple utilisant des propriétés et des méthodes statiques:

using static System.Math;

namespace Geometry
{
    public class Circle
    {
        public double Radius { get; set; };

        public double Area => PI * Pow(Radius, 2);
    }
}

Associer un alias pour résoudre des conflits

Si vous utilisez plusieurs espaces de noms pouvant comporter des classes de même nom (telles que System.Random et UnityEngine.Random ), vous pouvez utiliser un alias pour spécifier que Random provient de l'un ou l'autre sans avoir à utiliser l'intégralité de l'espace de nommage dans l'appel. .

Par exemple:

using UnityEngine;
using System;

Random rnd = new Random();

Cela empêchera le compilateur de déterminer quelle Random évaluer la nouvelle variable. Au lieu de cela, vous pouvez faire:

using UnityEngine;
using System;
using Random = System.Random;

Random rnd = new Random();

Cela ne vous empêche pas d'appeler l'autre par son espace de nom complet, comme ceci:

using UnityEngine;
using System;
using Random = System.Random;

Random rnd = new Random();
int unityRandom = UnityEngine.Random.Range(0,100);

rnd sera une variable System.Random et unityRandom sera une variable UnityEngine.Random .

Utiliser des directives d'alias

Vous pouvez utiliser using afin de définir un alias pour un espace de noms ou un type. Plus de détails peuvent être trouvés ici .

Syntaxe:

using <identifier> = <namespace-or-type-name>;

Exemple:

using NewType = Dictionary<string, Dictionary<string,int>>;
NewType multiDictionary = new NewType();
//Use instances as you are using the original one
multiDictionary.Add("test", new Dictionary<string,int>());


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow