Lequel de ceux-ci est le meilleur pour la maintenabilité?
if (byteArrayVariable != null)
if (byteArrayVariable .Length != 0)
//Do something with byteArrayVariable
OU
if ((byteArrayVariable != null) && (byteArrayVariable.Length != 0))
//Do something with byteArrayVariable
Je préfère lire et écrire le second, mais je me souviens avoir lu dans le code complet que faire des choses comme ça est mauvais pour la maintenabilité.
Cela est dû au fait que vous comptez sur la langue pour ne pas évaluer la deuxième partie du if
si la première partie est fausse et que toutes les langues ne le font pas. (La deuxième partie lèvera une exception si elle est évaluée avec une valeur nulle byteArrayVariable
.)
Je ne sais pas si c'est vraiment quelque chose à craindre ou non, et j'aimerais avoir des commentaires généraux sur la question.
Merci.
&&
et les ||
opérateurs effectuant une évaluation de court-circuit. Passer d'une langue à une autre a généralement quelques problèmes, et il est bon d'être ferme sur la révision des codes pour aider à résoudre ces petits problèmes.