Saya menerima kesalahan ini dan saya'm tidak yakin apa artinya?
Object reference not set to an instance of an object.
Variabel dalam .NET adalah salah satu jenis referensi atau nilai jenis. Nilai jenis yang primitif seperti [bulat], 1 dan boolean atau struktur (dan dapat diidentifikasi karena mereka mewarisi dari Sistem.Tim). Variabel Boolean, ketika menyatakan, memiliki nilai default:
bool mybool;
//mybool == false
Jenis referensi, ketika menyatakan, tidak memiliki nilai default:
class ExampleClass
{
}
ExampleClass exampleClass; //== null
Jika anda mencoba untuk mengakses anggota kelas misalnya dengan menggunakan null referensi maka anda mendapatkan Sistem.NullReferenceException. Yang sama dengan Object reference not set to an instance of an object.
Kode berikut adalah cara sederhana untuk mereproduksi ini:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
returnedClass.AnotherExampleMethod(); //NullReferenceException here.
}
class ExampleClass
{
public ReturnedClass ExampleMethod()
{
return null;
}
}
class ReturnedClass
{
public void AnotherExampleMethod()
{
}
}
Ini adalah kesalahan yang sangat umum dan dapat terjadi karena berbagai macam alasan. Akar penyebab benar-benar tergantung pada skenario tertentu yang anda've yang dihadapi.
Jika anda menggunakan API atau menerapkan metode yang dapat mengembalikan null maka's penting untuk menangani hal ini anggun. Metode utama di atas dapat dimodifikasi sedemikian rupa sehingga NullReferenceException tidak boleh dilihat oleh pengguna:
static void Main(string[] args)
{
var exampleClass = new ExampleClass();
var returnedClass = exampleClass.ExampleMethod();
if (returnedClass == null)
{
//throw a meaningful exception or give some useful feedback to the user!
return;
}
returnedClass.AnotherExampleMethod();
}
Semua hal di atas benar-benar hanya petunjuk .NET Tipe Dasar, untuk informasi lebih lanjut I'd sarankan baik mengambil CLR melalui C# atau membaca ini BACA artikel oleh penulis yang sama - Jeffrey Richter. Juga memeriksa, jauh lebih kompleks, contoh ketika anda dapat menemukan NullReferenceException.
Beberapa tim menggunakan Resharper menggunakan JetBrains atribut untuk keterangan kode untuk menyoroti di mana nulls yang (tidak) diharapkan.
Singkatnya artinya.. Anda mencoba untuk mengakses suatu objek tanpa instantiating itu.. Anda mungkin perlu untuk menggunakan "baru" kata kunci untuk menurunkannya pertama saya.e membuat sebuah instance dari itu.
Untuk misalnya:
public class MyClass
{
public int Id {get; set;}
}
MyClass myClass;
myClass.Id = 0; <----------- An error will be thrown here.. because myClass is null here...
Anda akan memiliki untuk menggunakan:
myClass = new MyClass();
myClass.Id = 0;
Harapan saya membuatnya jelas..
Sebagian besar waktu, ketika anda mencoba untuk assing nilai ke objek, dan jika nilai null, maka semacam ini pengecualian terjadi. Silahkan periksa link ini.
demi belajar mandiri, anda dapat menempatkan beberapa periksa kondisi. seperti
if (myObj== null)
Console.Write("myObj is NULL");
apa maksud dari pesan error ini? Object reference not set to an instance of an object.
persis apa yang dikatakan, anda mencoba untuk menggunakan objek yang kosong seolah-olah itu adalah benar objek direferensikan.
Jika saya memiliki kelas:
public class MyClass
{
public void MyMethod()
{
}
}
dan kemudian saya lakukan:
MyClass myClass = null;
myClass.MyMethod();
Baris kedua melempar pengecualian ini karena saya'm memanggil metode pada referensi obyek yang null
(I. e. belum contoh dengan memanggil myClass = new MyClass()
)