Ralat C#: "Rujukan objek diperlukan untuk mengakses medan, kaedah atau sifat bukan statik"
Dalam kod C# ini, ralat berlaku pada baris Main()
dalam kaedah Population[i].bits = GetRandomBits();
Mesej ralat ialah "Rujukan objek diperlukan untuk mengakses medan, kaedah atau sifat bukan statik 'VM_Placement.Program.GetRandomBits. ()'". Ralat ini menunjukkan bahawa kaedah bukan statik Main()
sedang dipanggil daripada kaedah GetRandomBits()
statik.
Dalam C#, kaedah statik dikaitkan dengan kelas dan bukannya dengan contoh kelas tertentu, manakala kaedah bukan statik dikaitkan dengan tika kelas. Ini bermakna kaedah bukan statik memerlukan contoh kelas untuk dipanggil.
Untuk kes khusus ini, terdapat dua penyelesaian untuk menyelesaikan ralat ini:
<code class="language-csharp">Program p = new Program(); p.GetRandomBits();</code>
Dengan mencipta tika kelas Program, GetRandomBits()
boleh dipanggil pada tika itu kerana ia kini merupakan kaedah tika.
<code class="language-csharp">public static string GetRandomBits() { // ... }</code>
Jadikan GetRandomBits()
statik, membenarkan ia dipanggil terus daripada kaedah Main()
statik tanpa memerlukan contoh kelas.
Atas ialah kandungan terperinci Mengapa Kod C# Saya Membuang 'Rujukan Objek Diperlukan untuk Ralat Medan, Kaedah atau Harta Bukan Statik'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!