2009-06-23 11 views
13

habe ich diesen C# Anweisung in einem Codebeispiel verwenden:Was ist das C# "verwenden" -Richtlinie?

using StringFormat=System.Drawing.StringFormat; 

Was ist denn das?

+1

bei der Prävention von Namespace Verwirrung –

+1

In diesem Beispiel es „Einfuhr“ der Stringklassenname ohne den Rest der Mitglieder des System.Drawing Namespace zu unterstützen. –

Antwort

32

Das Aliasing eines Typenamens zu einem kürzeren Namen. Die gleiche Syntax kann auch für das Aliasing von Namespaces verwendet werden. Siehe using directive.

(Stand als Antwort auf Richard)

+0

Namespace/oder/Typ Alias, um genau zu sein. –

+0

Ist dies eine allgemein akzeptierte Möglichkeit, eigene Generika zu benennen? z.B. mit DestinationMap = System.Collections.Generic.Dictionary ; – nos

+0

@noselasd: Nein, das ist nicht üblich.Natürlich können Sie es tun, wenn Sie wollen, aber ich würde dringend davon abraten, weil es sehr verwirrend ist ... Es wäre besser, eine DestinationMap-Klasse zu erstellen, die von Dictionary

2

Es heißt, Sie String als Alias ​​für System.Drawing.StringFormat verwenden;

13

Es ist ein alias, von jetzt an, der Benutzer String zu System.Drawing.StringFormat beziehen können. Dies ist nützlich, wenn Sie nicht den gesamten Namespace verwenden möchten (z. B. bei Namenskonflikten).

Quelle: using Directive article from MSDN

+1

erbt, was ich sagen wollte Es macht keinen Sinn, denselben Namen zu verwenden, aber da Sie erwähnt haben, dass der gesamte Namespace vermieden wird, ist dies sinnvoll. Ohne diesen Punkt sind die restlichen Antworten unvollständig. –

2

Es ist ein Alias ​​für den Namespace

3

Dies wird ein Alias ​​System.Drawing.StringFormat definieren.

, das die gleiche wie in diesem Beispiel ist:

using SQL = System.Data.SqlServer; 

SQL.SqlConnection sql = new SQL.SqlConnection(); 
7

Vielleicht ein anderer, unabhängiger String in einem anderen Namensraum wie Acme.Stuff erklärt. Wenn das der Fall wäre, dies zu Verwirrung führen würde:

using System.Drawing; // Contains StringFormat type. 
using Acme.Stuff; // Contains another StringFormat type. 

private void Foo() 
{ 
    StringFormat myFormat = new StringFormat(); // which one to use? 
} 

Aliasing mit using auf dem String ist = löscht System.Drawing.StringFormat einig der Verwirrung auf.

1

Das Schlüsselwort using wird zum Importieren von Namespaces oder Aliasing-Klassen oder zum Verwalten des Bereichs für Einwegobjekte verwendet. Hier sprechen wir über die Namespace-Nutzung.

Die Verwendung von wurde hier verwendet, ist ein wenig ungewöhnlich in C#, aber häufiger in Java-Importanweisungen. Es stellt einen StringFormat-Alias ​​bereit, ohne den gesamten System.Drawing-Namespace zu importieren. Manche Leute mit einem Java-Hintergrund importieren gerne nur die verwendeten Klassen und nicht ganze ganze Bereiche (auch Java-Pakete genannt). Sie vermeiden wahrscheinlich potentielle Namenskonflikte proaktiv, wenn Sie nur bestimmte Klassennamen importieren, aber das ist in C# nicht sehr verbreitet und Visual Studio fördert es nicht so, wie Netbeans für Java tut.

Die üblichere Verwendung von Alias ​​ist das Auflösen von Klassennamen in einen verkürzten Alias, wenn ein Namenskonflikt vorliegt.

using System.Drawing; 
using AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing; 
/* AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing has a StringFormat class */ 
using AwesomeStringFormat = AwesomeCompany.ReallyAwesomeStuff.AwesomeLibrary.Drawing.Stringformat; 
using StringFormat = System.Drawing.StringFormat; 

public class AwesomeForm() : Form 
{ 
    private AwesomeForm() 
    { 
     AwesomeStringFormat stringFormat = new AwesomeStringFormat(); 
     stringFormat.Color = Color.Red; 
     /* etc */ 
    } 
}