Rumah > pembangunan bahagian belakang > C++ > Mengapa Kod C# Saya Membuang 'Rujukan Objek Diperlukan untuk Ralat Medan, Kaedah atau Harta Bukan Statik'?

Mengapa Kod C# Saya Membuang 'Rujukan Objek Diperlukan untuk Ralat Medan, Kaedah atau Harta Bukan Statik'?

Barbara Streisand
Lepaskan: 2025-01-22 05:36:09
asal
424 orang telah melayarinya

Why Does My C# Code Throw

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:

  • Buat contoh kelas Program:
<code class="language-csharp">Program p = new Program();
p.GetRandomBits();</code>
Salin selepas log masuk

Dengan mencipta tika kelas Program, GetRandomBits() boleh dipanggil pada tika itu kerana ia kini merupakan kaedah tika.

  • Jadikan kaedah GetRandomBits() statik:
<code class="language-csharp">public static string GetRandomBits()
{
    // ...
}</code>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan