C# Language
Directiva de uso
Buscar..
Observaciones
La palabra clave using
es tanto una directiva (este tema) como una declaración.
Para la declaración de using
(es decir, para encapsular el alcance de un objeto IDisposable
, asegurándose de que fuera de ese alcance el objeto se elimine de forma limpia), consulte Uso de la declaración .
Uso básico
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)");
}
}
Referencia a un espacio de nombres
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();
Asociar un alias con un espacio de nombres
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();
Acceder a los miembros estáticos de una clase
Le permite importar un tipo específico y usar los miembros estáticos del tipo sin calificarlos con el nombre del tipo. Esto muestra un ejemplo usando métodos estáticos:
using static System.Console;
// ...
string GetName()
{
WriteLine("Enter your name.");
return ReadLine();
}
Y esto muestra un ejemplo utilizando propiedades y métodos estáticos:
using static System.Math;
namespace Geometry
{
public class Circle
{
public double Radius { get; set; };
public double Area => PI * Pow(Radius, 2);
}
}
Asociar un alias para resolver conflictos
Si está utilizando varios espacios de nombres que pueden tener clases con el mismo nombre (como System.Random
y UnityEngine.Random
), puede usar un alias para especificar que Random
proviene de uno u otro sin tener que usar todo el espacio de nombres en la llamada .
Por ejemplo:
using UnityEngine;
using System;
Random rnd = new Random();
Esto hará que el compilador no esté seguro de qué Random
evalúa la nueva variable como. En su lugar, puedes hacer:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
Esto no le impide llamar al otro por su espacio de nombres totalmente calificado, como este:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
int unityRandom = UnityEngine.Random.Range(0,100);
rnd
será una variable System.Random
y unityRandom
será una variable UnityEngine.Random
.
Usando directivas de alias
Puede usar using
para establecer un alias para un espacio de nombres o tipo. Más detalles se pueden encontrar aquí .
Sintaxis:
using <identifier> = <namespace-or-type-name>;
Ejemplo:
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>());