Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mencari Harta Awam dengan Cekap dengan Atribut Tersuai Khusus dalam C#?

Bagaimanakah Saya Boleh Mencari Harta Awam dengan Cekap dengan Atribut Tersuai Khusus dalam C#?

DDD
Lepaskan: 2025-01-05 02:37:38
asal
975 orang telah melayarinya

How Can I Efficiently Find Public Properties with a Specific Custom Attribute in C#?

Mencari Sifat dengan Atribut Khusus Menggunakan Refleksi

Atribut tersuai ialah alat yang berkuasa untuk menganotasi jenis dan ahli dalam kod .NET. Ia menjadi perlu untuk mendapatkan maklumat tentang atribut ini secara pemrograman pada masa-masa tertentu. Soalan ini memfokuskan pada mendapatkan semula senarai sifat awam yang dikaitkan dengan atribut tersuai khusus yang dipanggil MyAttribute, yang mempunyai sifat AllowMultiple yang ditetapkan kepada palsu.

Kod yang disediakan menggunakan gelung untuk mengulangi sifat jenis tersebut. dan menyemak kehadiran atribut tersuai menggunakan GetCustomAttributes(). Walaupun pendekatan ini berfungsi, ia melibatkan contoh atribut terwujud, yang disertakan dengan kos prestasi.

Pendekatan yang lebih cekap ialah menggunakan kaedah sambungan Where() pada koleksi GetProperties(), seperti yang ditunjukkan dalam yang diberikan jawapan:

var props = t.GetProperties().Where(
    prop => Attribute.IsDefined(prop, typeof(MyAttribute)));
Salin selepas log masuk

Kod ini memanfaatkan kaedah Attribute.IsDefined(), yang menyemak kewujudan jenis atribut tertentu pada ahli tanpa mencipta sebarang atribut contoh. Ungkapan lambda memastikan bahawa hanya sifat dengan MyAttribute dipilih ke dalam pembolehubah props.

Menggunakan pendekatan ini mengelakkan overhed yang dikaitkan dengan kejadian atribut terwujud, menghasilkan penyelesaian yang lebih ringan dan berprestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Harta Awam dengan Cekap dengan Atribut Tersuai Khusus dalam C#?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan