C# Language
Med hjälp av direktiv
Sök…
Anmärkningar
Det using
nyckelordet är både ett direktiv (detta ämne) och ett uttalande.
För using
uttalandet (dvs. för att kapsla in ett IDisposable
objekt för ett IDisposable
objekt, se till att objektet utanför det räckvidden blir rent bortsett) se Använda uttalande .
Grundläggande användning
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)");
}
}
Referera till ett namnområde
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();
Koppla ett alias till ett namnområde
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();
Få tillgång till statiska medlemmar i en klass
Tillåter dig att importera en specifik typ och använda typens statiska medlemmar utan att ange dem med typnamnet. Detta visar ett exempel med statiska metoder:
using static System.Console;
// ...
string GetName()
{
WriteLine("Enter your name.");
return ReadLine();
}
Och detta visar ett exempel med statiska egenskaper och metoder:
using static System.Math;
namespace Geometry
{
public class Circle
{
public double Radius { get; set; };
public double Area => PI * Pow(Radius, 2);
}
}
Associera ett alias för att lösa konflikter
Om du använder flera namnutrymmen som kan ha klasser med samma namn (t.ex. System.Random
och UnityEngine.Random
) kan du använda ett alias för att ange att Random
kommer från det ena eller det andra utan att behöva använda hela namnområdet i samtalet .
Till exempel:
using UnityEngine;
using System;
Random rnd = new Random();
Detta kommer att göra att kompilatorn är osäker på vilken Random
utvärdering av den nya variabeln som. Istället kan du göra:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
Detta hindrar inte dig från att ringa den andra genom att det är fullt kvalificerat namnutrymme, så här:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
int unityRandom = UnityEngine.Random.Range(0,100);
rnd
kommer att vara en System.Random
variabel och unityRandom
kommer att vara en UnityEngine.Random
variabel.
Med hjälp av aliasdirektiv
Du kan använda using
för att ställa in ett alias för ett namnområde eller typ. Mer information finns här .
Syntax:
using <identifier> = <namespace-or-type-name>;
Exempel:
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>());