Ralat C#: "Rujukan objek diperlukan untuk mengakses medan, kaedah atau sifat bukan statik"
Penjelasan:
Ralat ini berlaku apabila cuba mengakses pembolehubah, kaedah atau sifat bukan statik daripada konteks statik. Dalam contoh ini, kaedah "Utama" mengisytiharkan percubaan statik untuk memanggil kaedah bukan statik "GetRandomBits()".
Soalan khusus:
Dalam kod yang disediakan, kaedah "GetRandomBits()" ditakrifkan sebagai kaedah bukan statik dalam kelas "Program". Walau bagaimanapun, kaedah "Utama" diisytiharkan statik dalam kelas yang sama. Ketidakpadanan ini menyebabkan ralat.
Penyelesaian:
Terdapat dua penyelesaian yang mungkin untuk masalah ini:
Buat contoh kelas Program:
Dalam kaedah "Utama", buat contoh kelas "Program" dan kemudian panggil kaedah "GetRandomBits()" pada tika itu.
<code class="language-csharp">Program p = new Program(); string bits = p.GetRandomBits();</code>
Tetapkan "GetRandomBits()" kepada statik:
Sebagai alternatif, anda boleh mengubah suai pengisytiharan kaedah "GetRandomBits()" untuk menjadikannya kaedah statik. Dengan cara ini ia boleh dipanggil terus daripada kaedah "Utama" statik.
<code class="language-csharp">public static string GetRandomBits() { // ... 方法实现 }</code>
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Rujukan Objek Diperlukan untuk Ralat Medan, Kaedah atau Harta Bukan Statik' dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!