C# Language
Uso della direttiva
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
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>());