Diyelim ki bir yöntemim var:
public void DoSomething(ISomeInterface someObject)
{
if(someObject == null) throw new ArgumentNullException("someObject");
someObject.DoThisOrThat();
}
ArgumentNullException
"Doğru" ama "Nesne başvurusu bir nesnenin örneğine ayarlanmadı" hatasının atılmasının bir hatam olduğu anlamına geldiğine inanmak için eğitildim .
Niye ya?
Referansı önbelleğe alıyor someObject
ve daha sonra kullanıyor olsaydım , o zaman geçerken boşluğu kontrol etmenin ve erken başarısız olmanın daha iyi olacağını biliyorum. Ancak, bir sonraki satırda düzenlemeyi reddedersem, neden kontrolü yapmamız gerekiyor? Öyle ya da böyle bir istisna atacak.
Düzenle :
Aklıma başıma geldi ... dereferenced null korkusu, seni kontrol etmeyen C ++ gibi bir dilden mi geliyor?