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?

Foi útil?

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.

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