nullreferenceexception Hatası Ne Demek Nasıl Çözülür?
nullreferenceexception Hatası Ne Demek Nasıl Çözülür .Net aleminde C#, Vb.Net tarzı dilleri kullanarak kod yazma sırasında bir çok şahsın karşı karşıya kaldığı hatalardan birisi olan NullReferenceException yani Object reference not set to an instance of an object hatasıdır. Peki NullReferenceException Object reference not set to an instance of an object hatası nedir, Object reference not set to an instance of an object hatası nasıl çözülür?
NullReferenceException hatasının temel sebebi yaratılmamış bir nesneye değer atama veya değer okumaya çalışmaktır.
Örneğin üye türünde u1 adında bir obje olduğunu düşünelim. Aşağıdaki örnekte olduğu gibi NullReferenceException hatası alınır.
Uye u1=null; u1.Ad="cahap.com";// NullReferenceException hatası verir.
Aşağıdaki örnekte NullReferenceException hatası ise alınmaz
Uye yeniUye =newUye(); yeniUye.Ad="cahap.com";
Yukarıdaki örnekte üye sınıfından yeniüye adında bir nesne oluşturuluyor.
Basit
string kelime =null;int uzunluk = kelime.Length
kelime null’dur. Bu sebepten kelime içerisinde uzunluğunu öğrenebileceğiniz bir string ifade yoktur.
Dolaylı
publicclassKisi{publicintYas{get;set;}}publicclassKitap{publicKisiYazar{get;set;}}Kitap k1 =newKitap();int yazarYas = k1.Yazar.Yas;
Yukarıdaki örnekte Kitap türünde yeni bir nesne oluşturuldu fakat k1 içerisindeki Yazar özeliğine bir başlangıç değeri atanmadı. Yani yaşı alınacak bir Kisi yok.
Dizi (Array)
int[] sayilar =null;int n = sayilar[0];// sayi null. indeksi 0 olan bir eleman yok.
Yukarıdaki örnekte NullReferenceException hatası verir.
Asp.Net içerisinde hatası ile en çok şu durumlarda karşılaşılır:
Asp.Net sayfasının yaşam döngüsü sonlandığında
publicpartialclassSayfa:System.Web.UI.Page{protectedKisi yeniKisi;protectedvoidPage_Load(object sender,EventArgs e){if(!IsPostBack){ yeniKisi =newKisi();// Sayfa yüklendiğinde çalışır. Buton tıklandığında çalışmaz.}}protectedvoidKaydetButon_Click(object sender,EventArgs e){ yeniKisi.Ad="Ad özelliğine erişmek istediğinizde NullReferenceException döner. Çünkü Page Load içerisindeki örnek artık erişilemezdir.";}}
Asp. Net Session değer atanmadığında veya değeri artık geçersiz olduğunda
stringAd=Session["Ad"].ToString();
Session’a değer atanmadıysa veya Session timeout olduysa NullReferenceException hatası dönecektir.