Domanda

Ho eseguito lo strumento di analisi del codice VS 2008 contro un oggetto creato e ho ricevuto il seguente suggerimento ...

  

Avviso 147 CA1021: Microsoft.Design   : Considera un design che non lo fa   richiede che 'returnValue' sia un out   parametro.

Trovo " out " parametri piuttosto utili e non si sono resi conto di essere stati considerati una pratica di progettazione accigliata. Volevo sapere se qualcuno potesse far luce sul motivo per cui ho ricevuto questo avviso? Se è una cattiva pratica? perché? e quale sarebbe una buona pratica?

Apprezzo qualsiasi consiglio.

È stato utile?

Soluzione

Ad ogni avviso di Analisi del codice è associata una documentazione a cui è possibile accedere mettendo in guardia l'avviso e premendo F1 . Puoi anche fare clic con il pulsante destro del mouse sull'elemento per ottenere assistenza.

In ogni caso, ecco la che spiega quel particolare avvertimento .

Direi che ci sono alcuni casi in cui i parametri out sono ancora una buona scelta, in particolare quando si tratta del linguaggio di codifica TryParse, perché è un modo così ben definito di fare cose che la maggior parte delle persone dovrebbe capirlo

In generale, tuttavia, esistono soluzioni migliori e più orientate agli oggetti per valori di ritorno multipli.

Altri suggerimenti

Una volta ho eseguito l'analisi del codice sul mio progetto. Inoltre ho ricevuto molti suggerimenti perspicaci, l'ho disattivato molto brevemente. Molti dei suggerimenti sono di natura religiosa, puoi farlo in questo modo o nell'altro, una questione di stile e non di cattiva pratica.

Alla tua situazione. Se hai solo un parametro di ritorno, quindi ripristinalo fuori dalla funzione.

Se si dispone anche di un codice di ritorno che occupa il luogo di ritorno, prendere in considerazione l'utilizzo di eccezioni per informare il codice chiamante degli errori di funzionamento.

Se hai molti parametri da restituire che sono strettamente correlati tra loro, crea una classe / struttura per tenerli insieme e restituiscili come pacchetto.

Molti degli avvisi di analisi del codice mi sembrano rilevanti per la scrittura del codice API che verranno utilizzati da terze parti. La tua regola con i parametri "out" è un caso classico: parte del motivo per non usarli è perché molti altri programmatori non li conoscono.

Se non corrispondono a ciò che stai scrivendo, disattiva le regole di analisi del codice che non ti soddisfano. Personalmente tendo a disattivare le regole di denominazione, portabilità e interoperabilità in quanto non rilevanti per il tipo di codice che scrivo.

Ho disattivato questo avviso specifico nella maggior parte dei miei progetti. Da allora, so che, quando uso un parametro out, ho una buona ragione per farlo, dal momento che cerco di evitarli del tutto.

Potrei immaginare che, quando lavori con più persone su un progetto, potresti voler attivare questo avviso se vuoi fare alcune revisioni del codice ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top