Ottenere regola StyleCop SA1503 CurlyBracketsMustNotBeOmitted di essere più flessibili
-
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?
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.