Pergunta

Eu vi esse C # usando instrução em um exemplo de código:

using StringFormat=System.Drawing.StringFormat;

O que é isso tudo?

Foi útil?

Solução

Isso é aliasing um typename para um nome mais curto. A mesma sintaxe também pode ser usado para aliasing namespaces. Consulte usando directiva .

(Actualizado em resposta a Richard)

Outras dicas

É um apelido , a partir de agora, o usuário pode usar StringFormat para se referir a System.Drawing.StringFormat . É útil se você não quiser usar todo o espaço de nomes (no caso de questões nome confronto, por exemplo).

Fonte: usar o artigo directiva a partir de MSDN

Talvez, um StringFormat não relacionado diferente é declarado em outro espaço de nomes como Acme.Stuff. Se fosse esse o caso, isso iria causar confusão:

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 é com usando na StringFormat = System.Drawing .StringFormat apura-se alguns da confusão.

Isto irá definir um alias para System.Drawing.StringFormat.

Isso é a mesma coisa como neste exemplo:

using SQL = System.Data.SqlServer;

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

Isso significa que você está usando StringFormat como um alias para System.Drawing.StringFormat;

É um alias para o namespace

A palavra-chave usando é utilizado para importar namespaces ou aliasing classes ou para gerenciar o escopo em objetos descartáveis. Aqui nós estamos falando sobre o uso de namespace.

using StringFormat=System.Drawing.StringFormat;

A forma usando foi usado aqui é um pouco incomum em C #, mas mais comum em declarações de importação Java. O que ele faz é fornecer um alias de StringFormat sem importar todo o namespace System.Drawing. Algumas pessoas com um fundo Java, como a importação proactvely apenas as classes sendo usado em vez de anmespaces inteiros (aka pacotes Java). Sem dúvida você proativamente evitar conflitos de nomes em potencial se você importar nomes de classe única específicos, mas não é muito comum em C # e Visual Studio não incentivá-la do caminho, digamos, Netbeans faz para Java.

O usuage mais comum de aliasing é nomes de classe resolver para um apelido encurtadas quando há um conflito de nomes.

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 */
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top