Ottenere regola StyleCop SA1503 CurlyBracketsMustNotBeOmitted di essere più flessibili

StackOverflow https://stackoverflow.com/questions/971394

  •  13-09-2019
  •  | 
  •  

Domanda

Sto avendo un momento difficile con la regola StyleCop SA1503 (CurlyBracketsMustNotBeOmitted).

Nel mio codice ho abbastanza spesso un modello in tal modo:

public void SomeFunction(string someArg)
{
    if (string.IsNullOrEmpty(someArg)) throw new ArgumentNullException("someArg");

    // rest of the function here
}

La logica alla base di questo è per risparmiare spazio in verticale quando si fa più controlli di convalida su un singolo argomento e / o controlli su molti argomenti. La logica di tale controllo è tipicamente semplice e conciso e similmente per l'eccezione che viene generata.

Tuttavia, vorrei non di scrittura

if (someConditional)
    DoSomeStuff();

Vorrei sempre scrivere

if (someConditional)
{
    DoSomeStuff();
}

Quindi, in sintesi:

  • Utilizzare parentesi graffe se l'istruzione if è suddiviso su più righe
  • Non utilizzare parentesi graffe per una semplice convalida argomento ecc che può essere facilmente (e essere letti) ha messo su una riga

Può StyleCop aiutarmi qui?

È stato utile?

Soluzione

Come già accennato, unfortuntely regole StyleCop sono acceso o spento e non possono essere personalizzati. Sarebbe bello avere un modo semplice di personalizzare le regole, ma, purtroppo, avrete bisogno di scrivere da zero.

Il modo in cui ho usato StyleCop è di concentrarsi su utilizzando come molti del costruito in regole il più possibile e dove ho davvero una questione fondamentale con una regola (documentazione del codice, per esempio), ho appena spegnerlo. Io non sono preoccupato abbastanza circa le eccezioni per andare fino al punto di scrivere regole personalizzate.

Altri suggerimenti

StyleCop (e sono d'accordo qui) vi vuole dividere questo in più righe. Non gradisce if in un'unica linea, per (forse) buona ragione - questo provoca un modello di utilizzo incoerente per if, che è uno dei motivi che regola esiste in primo luogo

.

Per ottenere il comportamento si sta mostrando, si sarebbe probabilmente necessario utilizzare l'SDK per scrivere il proprio regola personalizzata per quel caso specifico, e quindi disattivare la regola di default.

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