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

6,0

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow