Boşsa, bir nesne üzerinde daha fazla işlem yapılmasını önlemek istiyorum.
Aşağıdaki kodda nesnenin ikisinden biri tarafından boş olup olmadığını kontrol ediyorum:
if (!data.Equals(null))
ve
if (data != null)
Ancak, bir NullReferenceException
at alırım dataList.Add(data)
. Nesne null olsaydı, asla if
-statement!
Bu nedenle, bunun bir nesnenin boş olup olmadığını kontrol etmenin uygun bir yolu olup olmadığını soruyorum:
public List<Object> dataList;
public bool AddData(ref Object data)
bool success = false;
try
{
// I've also used "if (data != null)" which hasn't worked either
if (!data.Equals(null))
{
//NullReferenceException occurs here ...
dataList.Add(data);
success = doOtherStuff(data);
}
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
return success;
}
Nesnenin null olup olmadığını kontrol etmenin doğru yolu buysa, ne yapıyorum (NullReferenceException özelliğini önlemek için nesne üzerinde daha fazla işlem yapılmasını nasıl önleyebilirim)?
!= null
null çeklerinizde kullanmalısınız . .Equals
nesne null olduğunda her zaman bir istisna atar.
throw e;
Çok daha iyi değil. throw;
, diğer taraftan ...
e.ToString()
yalnızca hata iletisini değil, aynı zamanda tümünü InnerExceptions
ve yığın izlemesini de içeren bir dize oluşturur . Yani bu çok ağır bir istisna mesajı. (Haklı olarak!) Bu bilgileri korumak ve ait olduğu yerde tutmak istiyorsanız, sadece kullanın throw;
.
throw e;
karşıthrow new Exception(e.ToString());