Rumah > pembangunan bahagian belakang > C++ > Bolehkah Reflection Mengakses Medan Kelas Persendirian?

Bolehkah Reflection Mengakses Medan Kelas Persendirian?

Mary-Kate Olsen
Lepaskan: 2025-01-21 23:22:12
asal
786 orang telah melayarinya

Can Reflection Access Private Class Fields?

Menggunakan Refleksi untuk Mengakses Ahli Kelas Persendirian

Masalah:

Adakah mungkin untuk menggunakan Reflection untuk mengakses medan peribadi kelas, contohnya, medan _bar dalam kod di bawah?

<code class="language-csharp">class Foo
{
    [SomeAttribute]
    private string _bar;

    public string BigBar
    {
        get { return this._bar; }
    }
}</code>
Salin selepas log masuk

Penyelesaian:

Ya, Reflection membenarkan akses kepada medan peribadi. Begini cara untuk mendapatkan semula medan peribadi menggunakan BindingFlags:

<code class="language-csharp">FieldInfo[] fields = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);</code>
Salin selepas log masuk

BindingFlags.NonPublic termasuk ahli bukan awam (seperti medan peribadi) dan BindingFlags.Instance memastikan hanya medan contoh dikembalikan. Tatasusunan fields kemudiannya akan mengandungi medan _bar peribadi.

Atas ialah kandungan terperinci Bolehkah Reflection Mengakses Medan Kelas Persendirian?. 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