2009-06-23 15 views
13

vi este C# using en un ejemplo de código:¿Qué es esta directiva C# "using"?

using StringFormat=System.Drawing.StringFormat; 

¿Qué es todo eso?

+1

para ayudar en la prevención de la confusión espacio de nombres –

+1

En este ejemplo, "las importaciones", el nombre de la clase StringFormat sin que el resto de los miembros del espacio de nombres System.Drawing. –

Respuesta

32

Aliasing a typename a un nombre más corto. La misma sintaxis también se puede usar para alias espacios de nombres. Ver using directive.

(Actualizado en respuesta a Richard)

+0

Namespace/or/type alias, para ser precisos. –

+0

¿Es esta una manera generalmente aceptada de nombrar sus propios genéricos? p.ej. utilizando DestinationMap = System.Collections.Generic.Dictionary ; – nos

+0

@noselasd: no, no es una práctica común.Por supuesto, puede hacerlo si lo desea, pero desaconsejarlo, porque es muy confuso ... Sería mejor crear una clase DestinationMap que herede de Dictionary

2

Significa que está utilizando StringFormat como un alias para System.Drawing.StringFormat;

13

Es una alias, a partir de ahora, el usuario puede utilizar StringFormat para referirse a System.Drawing.StringFormat. Es útil si no desea utilizar todo el espacio de nombres (en caso de problemas de conflictos de nombres, por ejemplo).

fuente: using Directive article from MSDN

+1

Iba a decir no tiene sentido usar el mismo nombre, pero como mencionó que evitará incluir todo el espacio de nombres, tiene sentido. Sin este punto, el resto de las respuestas están incompletas. –

2

Es un alias para el espacio de nombres

3

Esto va a definir un alias para System.Drawing.StringFormat.

Eso es lo mismo como en este ejemplo:

using SQL = System.Data.SqlServer; 

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

Tal vez una, StringFormat sin relación diferente se declara en otro espacio de nombres como Acme.Stuff. Si ese fuera el caso, esto causaría confusión:

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 es con using en el StringFormat = System.Drawing.StringFormat aclara algunos de la confusión.

1

La palabra clave using se utiliza para importar espacios de nombres o clases de aliasing o para administrar el alcance en objetos desechables. Aquí estamos hablando del uso del espacio de nombres.

using StringFormat=System.Drawing.StringFormat; 

La forma de usar que se utilizó aquí es un poco inusual en C# pero más común en las sentencias de importación de Java. Lo que hace es proporcionar un alias StringFormat sin importar todo el espacio de nombres System.Drawing. A algunas personas con un fondo de Java les gusta importar proactivamente solo las clases que se usan en lugar de espacios completos (también conocidos como paquetes de Java). Podría decirse que proactivamente evita posibles conflictos de nombres si solo importa nombres de clases específicos, pero no es muy común en C# y Visual Studio no lo alienta de la forma en que, por ejemplo, Netbeans lo hace para Java.

El uso más común de alias es resolver nombres de clase a un alias abreviado cuando hay un conflicto de nomenclatura.

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 */ 
    } 
}