Manakah dari ini yang lebih baik untuk pemeliharaan?
if (byteArrayVariable != null)
if (byteArrayVariable .Length != 0)
//Do something with byteArrayVariable
ATAU
if ((byteArrayVariable != null) && (byteArrayVariable.Length != 0))
//Do something with byteArrayVariable
Saya lebih suka membaca dan menulis yang kedua, tetapi saya ingat membaca dalam kode lengkap bahwa melakukan hal-hal seperti itu buruk untuk pemeliharaan.
Ini karena Anda mengandalkan bahasa untuk tidak mengevaluasi bagian kedua if
jika bagian pertama salah dan tidak semua bahasa melakukannya. (Bagian kedua akan melempar pengecualian jika dievaluasi dengan nol byteArrayVariable
.)
Saya tidak tahu apakah itu benar-benar sesuatu yang perlu dikhawatirkan atau tidak, dan saya ingin umpan balik umum atas pertanyaan itu.
Terima kasih.
&&
dan ||
operator melakukan evaluasi hubung singkat. Beralih dari satu bahasa ke bahasa lain biasanya memiliki beberapa gotcha, dan ada baiknya bersikap tegas tentang melakukan tinjauan kode untuk membantu menangkap masalah-masalah kecil itu.