Quando si verifica il parametro di un metodo, io lancio un ArgumentNullException
se è nullo. Vedi la prima riga nel metodo qui sotto. Ma che dire delle proprietà sul parametro che non dovrebbero essere nulle? Se provo a gestire nello stesso modo, ottengo un errore di analisi del codice:Il modo migliore per gestire le proprietà nulle su un parametro del metodo
CA2208 Instantiate argument exceptions correctly Method 'PriorityDeratingComponentLogic.CreateItem(IvSimulation)' passes 'ivSimulation.SolarPanel' as the 'paramName' argument to a 'ArgumentNullException' constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.
public DeratingComponentBase CreateItem(IvSimulation ivSimulation)
{
if (ivSimulation == null) { throw new ArgumentNullException("ivSimulation"); }
if (ivSimulation.SolarPanel == null) { throw new ArgumentNullException("ivSimulation.SolarPanel"); }
if (ivSimulation.GlobalEquipment == null) { throw new ArgumentNullException("ivSimulation.GlobalEquipment"); }
// ... method body here
}
è l'errore CA qualcosa che dovrei sopprimere, o c'è un modo generalmente accettato di gestire meglio questo? Forse il problema è a monte e non dovremmo nemmeno controllare che le proprietà siano nulle a questo punto?
Sì, il messaggio di errore dell'analisi del codice sembra stupido. Questo mi sembra perfetto. Roba come questa è la ragione per cui non ho mai usato il software di analisi del codice prima ... – Jashaszun
'IvSimulation' dovrebbe impedire la costruzione di valori non validi, quindi dovrebbe validare' SolarPanel' e 'GlobalEquipment'. – Lee