Resharper (o è Visual Studio - è una lampadina gialla con un piccolo filamento rosso in esso) offre "invert if" su questo codice:
if (tItems >= 0)
{
return tItems;
}
SetTotalItemsAndTotalAmt();
... e se lo permetto, diventa questo:
if (tItems < 0)
{
SetTotalItemsAndTotalAmt();
}
return tItems;
... ma poi offre di nuovo "inverti se", e se abboccerò credibilmente all'esca, tornerà al suo antico splendore.
Se un modo è considerato migliore (più grokkable, suppongo) rispetto all'altro, perché dovrebbe consentire anche un'inversione inversa? E se si tratta di "sei di una e mezza dozzina di altri", perché si preoccupa anche di offrire un cambiamento?
UPDATE
In realtà, a pensarci bene, uno di questi modi non è nemmeno valido, perché dice " WorkFiles.getAmount ()": non tutti i percorsi di codice restituiscono un valore "a meno che non abbia la dichiarazione di ritorno al di fuori della condizione if.
La mia ipotesi è che questo è non Resharper che sta facendo questo; quei gatti con l'Urquell non farebbero una cosa del genere, mi pare.