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

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

Linda Hamilton
Linda Hamiltonasal
2025-01-22 05:31:09292semak imbas

Why Does C# Throw

Pengecualian C#: "Rujukan objek diperlukan untuk mengakses medan, kaedah atau sifat bukan statik"

Dalam C#, ralat "Rujukan objek diperlukan untuk mengakses medan, kaedah atau sifat bukan statik" biasanya berlaku apabila kaedah statik cuba mengakses ahli kelas bukan statik.

Ralat dalam artikel ini berlaku dalam baris kod berikut dalam kaedah Main:

<code class="language-c#">Population[i].bits = GetRandomBits();</code>

Masalahnya ialah dengan kaedah GetRandomBits, yang diisytiharkan sebagai kaedah bukan statik dalam kelas Program. Walau bagaimanapun, kaedah Main ditakrifkan sebagai kaedah statik, yang bermaksud ia hanya boleh mengakses ahli statik kelas.

Penyelesaian

Terdapat dua cara untuk menyelesaikan ralat ini:

1. Buat contoh kelas:

Kaedah statik tidak boleh mengakses ahli bukan statik secara langsung. Untuk mengakses kaedah atau sifat bukan statik daripada kaedah statik, anda mula-mula membuat tika kelas dan kemudian memanggil kaedah atau mengakses sifat melalui tika itu. Contohnya:

<code class="language-c#">// 创建 Program 类的实例
Program p = new Program();

// 通过实例调用 GetRandomBits 方法
Population[i].bits = p.GetRandomBits();</code>

2. Jadikan kaedah statik:

Sebagai alternatif, anda boleh menjadikannya kaedah statik dengan menambahkan kata kunci Program apabila mengisytiharkan kaedah GetRandomBits dalam kelas static. Dengan cara ini, kaedah Main statik boleh terus mengakses kaedah GetRandomBits tanpa membuat tika. Contohnya:

<code class="language-c#">public static string GetRandomBits()
{
    // 方法实现
}</code>

Dengan salah satu kaedah di atas, anda boleh menghapuskan ralat dan membuat kaedah Main mengakses kaedah GetRandomBits dengan betul.

Atas ialah kandungan terperinci Mengapa C# Membuang 'Rujukan Objek Diperlukan untuk Medan, Kaedah atau Harta Bukan Statik'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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