Bu sitede bulunan yazılar memnuniyetsizliğiniz halınde olursa bizimle iletişime geçiniz ve o yazıyı biz siliriz. saygılarımızla

    ingilizce dilinden object reference not set to an instance of an object çevirisi

    1 ziyaretçi

    ingilizce dilinden object reference not set to an instance of an object çevirisi Ne90'dan bulabilirsiniz

    İngilizce › Türkçe çeviri: Object reference not set to an instance

    İngilizce › Türkçe çeviri: Object reference not set to an instance

    object reference not set to an instance

    Nesne başvurusu nesne örneğine ayarlanmadı - Exchange | Microsoft Learn

    MehmetX.com | Object Reference Not Set To An Instance Of An Object Hatası

    Yazılım geliştirirken karşınıza en çok çıkan/çıkacak hatalardan biridir, Object reference not set to an instance of an object hatası.

    Hatanın sebebi; NULL olan, referans tipinde bir değişkenin bir üyesine erişmeye çalışmanızdır. Yani sizin bir class' ınız var, bu class' ınızın nesnesi NULL iken, bu class içerisindeki bir üyeye erişmeye çalışıyorsunuz.

    Basit bir örnek ile bakacak olursak;
     

    Calisan isminde bir class' ımız var.

    classCalisan

    {

        publicstringAd {get;set; }

    }

    ve bir metot içerisinde, Calisan class' ından cls nesnesini tanımladık.

    privatevoidbutton1_Click(objectsender,EventArgse)

    {

        Calisancls =null;

        this.Text = cls.Ad; //runtime hata verecek olan satır

    }

    button click içerisinde cls nesnesinin Ad özelliğini Form' un Text özelliğine eşitlemek istedik, cls nesnesi NULL olduğu için this.Text = cls.Ad; satırında runtime hatası alacağız. Hata mesajı olarak da Object reference not set to an instance of an object verecektir, Türkçe olarak da Nesne başvurusu bir nesnenin örneğine ayarlanmadı.

    Yukarıdaki basit örnekte cls isimli Calisan nesnesini doğrudan NULL' a eşitledim. Object reference not set to an instance of an object hatası aldığınız, sizin örneğinizde doğrudan NULL' a eşitlenmemiş olacaktır muhtemelen. Bir metottan dönen değere vb. bir eşitleme sonucunda NULL olacaktır.

    Başka bir örnek;

        Calisancls =context.Calisans.FirstOrDefault(x => x.Id== 9999);

        stringad = cls.Ad;

    Veritabanında, Id' si 9999 olan bir Calisan yok ise, FirstOrDefaultmetodu geriye NULL döndürecektir. Yani cls nesnesi NULL olacaktır ve bir alt satırında cls nesnesinin Ad özelliğinin değerini çekmeye çalıştığımızda Object reference not set to an instance of an object hatası alacaksınız.

    Sadece property (özellik)' lerde değil, class içerisindeki herhangi member' a (üyeye) erişmeye çalıştığınızda, üyesine erişmeye çalıştığınız nesne NULL ise Object reference not set to an instance of an object hatasını alırsınız.

    Aynı class içerisine Yap isminde bir metot ekledim. Metodun içerisinde neler yapılacağı önemli değil, bu yüzden boş bıraktım.

    class Calisan

    {

        public string Ad { get; set; }

        public void Yap()

        {

           //...

        }

    }

    Form_Load içerisinde Yap metodunu çağırdık ve uygulamayı çalıştırdığımızda Object reference not set to an instance of an object hatasını aldık. Çünkü cls nesnesi NULL ve NULL olan bir nesnenin herhangi bir üyesine erişemeyiz.

    private void Form1_Load(object sender, EventArgs e)

    {

        Calisan cls = null;

        cls.Yap();

    }

    Çözüm olarak;

    NULL kontrolü yapmanız gerekir.

    Property (özellik) örneğinde;

    private void button1_Click(object sender, EventArgs e)

    {

        Calisan cls = null;

        if (cls != null)

        {

            this.Text = cls.Ad;

        }

    }

    Metot örneğinde ise;

    private void Form1_Load(object sender, EventArgs e)

    {

        Calisan cls = null;

        if (cls != null)

        {

            cls.Yap();

        }

    }

    Yapılan NULL kontrolü tabiki nesnenin NULL kalmasını değiştirmez, sadece runtime' da alacağınız Object reference not set to an instance of an object hatasını engeller. Nesne yine NULL kalmaya devam eder.

    Yazı kaynağı : www.mehmetx.com

    Yorumların yanıtı sitenin aşağı kısmında

    Ali : bilmiyorum, keşke arkadaşlar yorumlarda yanıt versinler.

    Yazının devamını okumak istermisiniz?
    Yorum yap