C# Language
Richtlijn gebruiken
Zoeken…
Opmerkingen
Het using
zoekwoorden is zowel een richtlijn (dit onderwerp) en een verklaring.
Voor het using
instructie (dat wil zeggen om de reikwijdte van een in te kapselen IDisposable
object, zodat buiten dat kader wordt het object netjes afgestaan) zie Gebruik van Verklaring .
Basisgebruik
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)");
}
}
Referentie een naamruimte
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();
Een alias koppelen aan een naamruimte
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();
Toegang tot statische leden van een klasse
Hiermee kunt u een specifiek type importeren en de statische leden van het type gebruiken zonder ze te kwalificeren met de typenaam. Dit toont een voorbeeld met behulp van statische methoden:
using static System.Console;
// ...
string GetName()
{
WriteLine("Enter your name.");
return ReadLine();
}
En dit toont een voorbeeld met behulp van statische eigenschappen en methoden:
using static System.Math;
namespace Geometry
{
public class Circle
{
public double Radius { get; set; };
public double Area => PI * Pow(Radius, 2);
}
}
Koppel een alias om conflicten op te lossen
Als u gebruik maakt van meerdere naamruimten die dezelfde naam klassen (zoals kunnen hebben System.Random
en UnityEngine.Random
), kunt u een alias gebruiken om aan te geven dat Random
afkomstig is van de ene of de andere, zonder dat u het hele namespace te gebruiken in de oproep .
Bijvoorbeeld:
using UnityEngine;
using System;
Random rnd = new Random();
Hierdoor weet de compiler niet zeker welke Random
de nieuwe variabele als moet evalueren. In plaats daarvan kunt u het volgende doen:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
Dit sluit niet uit dat u de ander kunt bellen door de volledig gekwalificeerde naamruimte, zoals deze:
using UnityEngine;
using System;
using Random = System.Random;
Random rnd = new Random();
int unityRandom = UnityEngine.Random.Range(0,100);
rnd
zal worden System.Random
variabel en unityRandom
zal worden UnityEngine.Random
variabele.
Aliasrichtlijnen gebruiken
U kunt gebruik maken van using
om een alias voor een namespace of type in te stellen. Meer details zijn hier te vinden .
Syntaxis:
using <identifier> = <namespace-or-type-name>;
Voorbeeld:
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>());