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

6.0

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow