Değişme özelliği nedeniyle, object == null
ve null == object
( Yoda versiyonu ) arasındaki tek fark bilişsel niteliktedir : kodun okuyucu tarafından nasıl okunduğu ve sindirildiği. Yine de kesin cevabı bilmiyorum, ama kişisel olarak incelediğim nesneyi başka bir şeyle karşılaştırmayı tercih ettiğimi biliyorum , eğer mantıklıysa, incelediğim nesneyle başka bir şeyi karşılaştırmak yerine . Konuyla başlayın, ardından onu karşılaştırılacak değerle başlayın.
Diğer bazı dillerde bu karşılaştırma stili daha kullanışlıdır.
Genel olarak eksik bir "=" işaretine karşı korunmak için, yazmanın null == object
yanlış bir savunma programlama eylemi olduğunu düşünüyorum . Bu özel kodun etrafından dolaşmanın daha iyi yolu, davranışı bir junit testi ile garanti etmektir. Unutmayın, olası bir "=" hatası, yöntemin girdi argümanlarına bağlı değildir - bu API'nin başkaları tarafından doğru kullanımına bağlı değilsiniz - bu nedenle, bunun yerine bir junit testi, buna karşı korunmak için mükemmeldir. Her neyse, davranışı doğrulamak için junit testleri yazmak isteyeceksiniz; eksik bir "=" doğal olarak kapsam dahilindedir.