Exemplos de atribuição de variável implícita em C#
-
26-09-2019 - |
Pergunta
Percebi que você pode fazer esse tipo de coisa em C#:
XNamespace c = "http://s.opencalais.com/1/pred/";
Observe que o valor da string é implicitamente convertido em tipo diferente. Existem outros lugares que isso pode ser feito? Quais são alguns padrões e práticas comuns em torno desse tipo de coisa?
Solução
Isso pode acontecer sempre que um operador de conversão implícita é definido. Em suma, é bastante raro.
Outras dicas
Isso deve ajudarhttp://msdn.microsoft.com/en-us/library/z5z9kes2.aspx
Edit: Matt Ninja'd It :)
Surpreendentemente, a primeira vez que vi isso foi no Artigo da Wikipedia Sobre os operadores de conversão C#, nunca vi alguém usar isso antes. Parece que isso faria uma legibilidade e confundiria muitos desenvolvedores ...
Basicamente, o Xnamespace fornece um operador que executa conversão implícita.
Eu acho que a maioria das diretrizes de senso comum se aplica, use-o apenas onde faz sentido e evita confusão. O maior problema é não intencional Conversão implícita que poderia potencialmente se abrir para erros de programação. Você pode evitar isso e ainda fornecer uma conversão com um explícito Operador de conversão.
Um exemplo de um caso em que você deseja usar um operador de conversão explícito em vez de um implícito seria uma classe inteira que permite a conversão de um tipo de ponto flutuante; Uma conversão implícita ocultaria o truncamento/arredondamento que teria que ocorrer e, portanto, poderia tornar o usuário muito confuso (e provavelmente seria a fonte de bugs.)
No meu código, usei -o algumas vezes, por exemplo, em uma estrutura de resultado de validação muito simples, que forneceu conversão implícita ao bool (mas não de). Isso me permitiu fazer if (result) { ... }
(O júri ainda está fora da utilidade disso :)).
Acho que a maior parte de seu uso é para dados de dados "simples", como números inteiros, decimais e da mesma forma.