Em C #, sou incentivado a usar a palavra-chave var para todos os fins para todas as declarações de variáveis? Se sim, devo mencionar esses caracteres especiais para valores literais na declaração da variável, como M para decimal, na seguinte instrução:
var myDecimal = 14.5M;
Se isso faz diferença, estou tentando fazer algum desenvolvimento web com C #.
c#
variables
data-types
wassimans
fonte
fonte
auto
.Respostas:
Tem havido muita disputa sobre o uso de var. Minhas regras gerais são as seguintes.
Basicamente, o objetivo é facilitar a leitura do código. Se você acha que var é suficiente porque a atribuição é óbvia, use var. Use o nome completo do tipo como uma dica para o leitor quando achar necessário.
fonte
foreach
declarações nas quais me importo apenas em enumerar uma coleção, não necessariamente no tipo de cada item.Quando usar
var
é uma programação "guerra santa". Há precisamente um lugar onde é necessário: quando o resultado de uma operação cria um tipo anônimo, como:Em qualquer outro lugar, é opcional e realmente depende do seu padrão de codificação usá-lo ou não em outras situações.
E sim, você precisará de caracteres especiais para literais para permitir que o compilador saiba o que é no lado direito. No seu exemplo, sem o
M
, o padrão é emdouble
vez dedecimal
.fonte
Do MSDN :
Eu realmente não gosto de digitar implícita. Na superfície, ele tende a tornar o código mais legível, mas pode levar a muitos problemas no caminho. Se um dev alterar um inicializador de variável, digamos, de
para
ou
O tipo será alterado, resultando em uma série de erros do compilador ou, se estiver em uma exibição da Web e você não estiver usando a etapa pós-compilação para pré-compilar suas exibições, uma série de erros de tempo de execução que não serão capturados sem eficácia teste de pré-implantação.
A digitação implícita também não funciona em qualquer lugar (do mesmo link do MSDN)
Manter seu código consistente (nesse caso, usar digitação explícita em qualquer lugar) é uma coisa muito, muito boa. Na minha opinião,
var
é preguiçoso e não oferece nenhum benefício real, além de apresentar outro ponto potencial de falha em um processo já complexo.Atualização de 2017
Eu mudei completamente de idéia. Ao trabalhar em C #, uso a
var
maior parte do tempo (exceto coisas como variáveis do tipo interface). Ele mantém o código conciso, o que melhora a legibilidade. Ainda assim - preste atenção no que realmente é o tipo resolvido.fonte
this.
qualquer lugar, ou dizer emSystem.Blah.SomeType
vez de umusing
, que ainda acho incrivelmente irritante, um código mais conciso é - pelo menos para mim - normalmente mais fácil de analisar visualmente. Ainda existem muitos cenários em que a digitação explícita é a escolha certa. Hoje em dia, porém, sou menos advogado de idiomas do que alguém apenas tentando obter código limpo pela porta.using namespace std;
arquivos .cpp. (Não cabeçalhos, como eu preferiria evitar ser asfaltado e emplumado.)A Referência de C # mostra o seguinte para ilustrar o uso bom ou ruim desse construto:
O exemplo a seguir mostra duas expressões de consulta. Na primeira expressão, o uso de var é permitido, mas não é necessário, porque o tipo do resultado da consulta pode ser declarado explicitamente como um IEnumerable. No entanto, na segunda expressão, var deve ser usado porque o resultado é uma coleção de tipos anônimos e o nome desse tipo não está acessível, exceto no próprio compilador. Observe que no Exemplo 2, o item da variável de iteração foreach também deve ser digitado implicitamente.
fonte
A palavra-chave var solicita apenas que o compilador deduza o tipo da variável de tipo var automaticamente. Portanto, se você deseja armazenar uma variável do tipo decimal em uma variável var, é necessário usar m. Da mesma forma, se você estiver armazenando uma string, precisará colocá-la entre aspas.
fonte
Para mim, não uso var nos seguintes casos:
Fruit foo = new Apple();
. Nesse caso, acho que var é evitar e usar a classe pai (aqui Fruit) é melhor, permitindo uma melhor compreensão da lógica do código e limitação dos prováveis erros (com var, nenhuma verificação do conceito polimórfico!)Quanto ao resto, acho que depende do caso e do histórico do desenvolvedor. Algumas pessoas do mundo PHP preferem não cuidar dos tipos de variáveis, e algumas pessoas do mundo Java apenas pensam que var é uma heresia e quanto mais detalhado, melhor.
Você terá que fazer sua opinião pessoal :)
fonte