HATA 3 | Object reference not set to an instance of an object / Nesne başvurusu bir nesnenin örneğine ayarlanmadı
Geliştirme yaparken karşımıza en çok çıkan hatalardan biri de 'Object reference not set to an instance of an object' yani 'NullReferenceException' dır. Türkçe kullanıyorsanız -ki tavsiye etmem kaynak yetersizliği yüzünden- alacağınız hata 'Nesne başvurusu bir nesnenin örneğine ayarlanmadı'.
Burada en büyük yardımcımız break point'ler. DEBUG DEBUG DEBUG!
1- Örneğin bir class'ınız var ve bu class'ın nesnesi null. Buraya erişmeye çalışırsanız bu hatayı alırsınız. Bu basit örneği koda dökelim:
public class Vehicle
{
public string Plate { get; set;}
}
public string GetVehicle()
{
var plate = "";
Vehicle vhc = null;
plate = vhc.Plate; ------------ HATA ALINACAK SATIR
}
Ben direkt Vehicle class'ını null'a eşitledim ancak siz muhtemelen database'den veri çekerken null dönecektir, breakpoint kullanarak görebilirsiniz. Kısaca null olan bir class'ın nesnesine ulaşmaya çalışırsak tabii ki bu hata alırız.
2- Örneğin şu şekilde de olabilir:
context.Vehicles.FirstOrDefault(x=> x.Plate == "34 MA 35");
Database'de plakası "34 MA 35" olan bir araç yoksa bu sorgu da sonuç olarak null hatası verecektir.
3- Sadece null class'taki nesneye erişirken değil aynı zamanda içindeki bir metota erişemeye çalıştığımızda da bu hatayı alırız.
public class Vehicle
{
public string Plate { get; set;}
public Vehicle GetVehicleByPlate(string plate)
{
// sorgular, sorgular...
}
}
// Kodumuzun bir bölümünde
Vehicle vhc = null;
var selectedVehicle = GetVehicleByPlate("34 MA 35"); // HATA GELECEK SATIR
Bu hatanın fırlamasını engellemek için NULL kontrolü yapmak gerekir. Yukarıdaki örneği düzenlersek:
Vehicle vhc = null;
if(vhc != null)
{
var selectedVehicle = GetVehicleByPlate("34 MA 35");
}
Yorumlar
Yorum Gönder