Ricerca…


Osservazioni

La parola chiave using è sia una direttiva (questo argomento) sia una dichiarazione.

Per l'istruzione using (vale a dire per incapsulare l'ambito di un oggetto IDisposable , assicurandosi che al di fuori di tale ambito l'oggetto venga eliminato in modo pulito), vedere Utilizzo di Statement .

Uso di 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)");
    }
}

Fai riferimento a uno spazio dei nomi

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

Associare un alias con uno spazio dei nomi

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

Accesso ai membri statici di una classe

6.0

Consente di importare un tipo specifico e utilizzare i membri statici del tipo senza qualificarli con il nome del tipo. Questo mostra un esempio usando metodi statici:

using static System.Console;

// ...

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

E questo mostra un esempio usando proprietà e metodi statici:

using static System.Math;

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

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

Associare un alias per risolvere i conflitti

Se si utilizzano più spazi dei nomi che possono avere classi con lo stesso nome (come System.Random e UnityEngine.Random ), è possibile utilizzare un alias per specificare che Random proviene da uno o l'altro senza dover utilizzare l'intero spazio dei nomi nella chiamata .

Per esempio:

using UnityEngine;
using System;

Random rnd = new Random();

Ciò farà sì che il compilatore non sia sicuro di quale Random valuterà la nuova variabile come. Invece, puoi fare:

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

Random rnd = new Random();

Questo non ti preclude di chiamare l'altro dal suo spazio dei nomi completo, come questo:

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

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

rnd sarà una variabile System.Random e unityRandom sarà una variabile UnityEngine.Random .

Usando le direttive alias

È possibile utilizzare l' using per impostare un alias per uno spazio dei nomi o un tipo. Maggiori dettagli possono essere trovati qui .

Sintassi:

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

Esempio:

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow