Pergunta

Eu corri a ferramenta de análise 2,008 código VS contra um objeto que eu criei e recebeu a seguinte sugestão ...

Aviso 147 CA1021: Microsoft.Design : Considere um projeto que não faz exigem que 'returnValue' ser um fora parâmetro.

I encontrar "out" parâmetros em vez úteis e não percebeu que eles eram considerados como um desaprovada prática do design. Eu queria saber se alguém poderia lançar alguma luz sobre a razão que eu recebi esse aviso? Se é má prática? porque? eo que seria uma boa prática?

Eu aprecio qualquer conselho.

Foi útil?

Solução

aviso

Cada análise de código tem associado documentação que você pode acessar por highligting o aviso e pressionar F1 . Você também pode botão direito do mouse no item para obter ajuda.

Em qualquer caso, aqui está a documentação que explica que aviso especial .

Eu diria que existem alguns casos em que os parâmetros são ainda uma boa escolha - especialmente quando se trata da linguagem de codificação TryParse, porque é uma forma bem estabelecida de fazer as coisas que a maioria das pessoas são supostamente para compreendê-lo

No uso geral, no entanto, não são melhores, mais soluções orientadas a objetos para vários valores de retorno.

Outras dicas

Uma vez eu corri mim análise de código no meu projeto. Também eu tive muitas sugestões interessantes, eu virei muito brevemente esta off. Muitas das sugestões são de natureza religiosa, você pode fazê-lo desta forma ou de outra, uma questão de estilo e não uma má prática.

Para a sua situação. Se você só tem um parâmetro de retorno, em seguida, devolvê-lo desistir da função.

Se você também tem um código de retorno que ocupa o lugar de retorno, considere o uso de exceções para informar o código de chamada de erros de operação.

Se você tem muitos parâmetros para retorno que estão intimamente relacionados entre si, fazer uma classe / estrutura para mantê-los juntos e devolvê-lo como um pacote.

Muitos dos avisos de análise de código me parecem ser relevantes para escrever código API que 3 partes usará. Sua regra com 'fora' parâmetros é um caso clássico:. Parte da razão para não usá-los é porque um monte de outros programadores não sabem sobre eles

Se eles não corresponderem ao que você está escrevendo, em seguida, desligue regras de análise de código que não se adequam a você. Pessoalmente, eu tendem a desligar nomear, portabilidade e regras de interoperabilidade, pois não são relevantes para o tipo de código que eu escrevo.

I transformaram este aviso off na maioria dos meus projetos específicos. Uma vez que, eu sei que, quando eu uso um parâmetro de saída, eu tenho uma boa razão para fazê-lo, uma vez que eu tento evitá-las completamente.

Eu poderia imaginar no entanto, que, quando se trabalha com várias pessoas em um projeto, você pode querer ter esse aviso ligado, se você quiser fazer algumas revisões de código ...

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