Domanda

FXCOP sta attualmente segnalando la stessa violazione delle regole per un metodo particolare: ha due parametri fuori, perché voglio restituire due valori al chiamante senza crearne una struttura. Mi chiedo se i tipi anonimi avrebbero risolto il mio problema, ma non ne sapevo al momento in cui avevo scritto il metodo.

Comunque, sto ottenendo un segnalazione di checkId CA1021 una volta per ciascun parametro. Ho copiato il testo di soppressore da FXCOP e poi ho capito che l'ID per ogni messaggio è diverso! Per me, sembra che tu abbia solo bisogno del controllo, quindi ...

  1. A cosa serve l'ID? Non sono stato in grado di trovare informazioni al riguardo online.
  2. L'ID rimarrà lo stesso? Presumo così, o sopprimessEssage non funzionerebbe come si vorrebbe
  3. c'è un modo per specificare l'attributo di soppressore in modo da sopprimere tutto IDS?
È stato utile?

Soluzione

Da In panoramica di soppressione della fonte

Gli attributi possono essere applicati solo a un metodo e non possono essere incorporati all'interno del corpo del metodo. Tuttavia, è possibile specificare l'identificatore come ID messaggio per distinguere molteplici occorrenze di una violazione all'interno di un metodo.

In altre parole: il messaggio viene utilizzato per sopprimere una singola istanza dell'errore all'interno dell'ambito; Questo è utile se sei preoccupato di introdurre accidentalmente l'errore all'interno dello stesso metodo e vuoi catturare quella nuova introduzione con FXCOP (o se si desidera specificare diverse giustificazioni per ogni occorrenza del problema). Se non hai paura di introdurre più di questi errori (o non ti interessa se lo fai) e hai la stessa giustificazione, puoi semplicemente lasciare il messaggio nella dichiarazione di soppresso: [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")].

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