Pergunta

O Using Namespace; consumir mais memória?

Atualmente estou trabalhando em um aplicativo para celular e eu estava curioso para saber se aqueles que utilizam declarações desnecessários que lugares do Visual Studio ao criar uma classe formular o meu pedido exigir alguma memória extra para ser executado.

Foi útil?

Solução

Para colocá-lo simplesmente: Não.

Essas declarações não são traduzidos em qualquer forma de IL. Eles são apenas atalhos para evitar o uso de nomes de tipos totalmente qualificados (feio!). Mas, se você estiver usando VS2008 e / ou R # você pode remover os não utilizados automagicamente.

Outras dicas

Namespaces são uma única característica de C # que permitem economizar tempo durante o desenvolvimento tempo de compilação. As directivas using são utilizados pelo compilador para procurar nomes de Tipo taquigrafia em seu código.

Basicamente cada vez que o compilador encontra um nome de tipo em seu código que ele não sabe que é preciso cada directiva using e prepends-lo ao nome do tipo e vê se isso resolve o nome totalmente qualificado.

Uma vez que você aplicativo é compilado os namespaces e as directivas using sumiram como a IL não precisa delas.

Se por "memória" que quer dizer "Eu tenho que me lembrar por que eu coloquei essas declarações usando no topo em primeiro lugar", então sim.

Mas, não, não no sentido que você quer dizer. conjuntos .NET normalmente são carregados sob demanda, para que você não irá sofrer qualquer penalidade de desempenho por ter essas declarações extras. No entanto, por uma questão de manutenção, você vai querer removê-los.

aqui está a informação microsoft sobre o "uso de" palavra-chave neste contexto: http : //msdn.microsoft.com/en-us/library/sf0df423.aspx . que basicamente fornece uma alternativa para usar o nome totalmente qualificado em uma montagem, mas ele realmente não importar ou incluir os módulos na memória com essa palavra-chave particular.

Não, isso não acontece. Ele simplesmente é um atalho para permitir que você use somente o nome do tipo

StringBuilder

Ao contrário do nome do tipo de namespace qualificado:

System.Text.StringBuilder

No arquivo onde a declaração usando é declarada.

Não, ele só irá fazer o compilador correr um pouco mais lento:)

Não faz. Ele é usado para que você não tem que definir o objeto que você está usando seu nome completo. Em vez de System.IO.File você pode apenas fazer arquivo se você estiver usando System.IO.

Não é carregado na memória até que você realmente criar o objeto. Ao contrário de C ++ a biblioteca inteira não é importado, porque o framework .NET está instalado na máquina de destino e carregado no GAC, e seu costume .dll estão na pasta bin da pasta de aplicativos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top