Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Kembali Hartanah dengan Atribut Tersuai dengan Cekap dalam .NET?

Bagaimanakah Saya Boleh Mendapatkan Kembali Hartanah dengan Atribut Tersuai dengan Cekap dalam .NET?

Susan Sarandon
Susan Sarandonasal
2024-12-27 04:42:25114semak imbas

How Can I Efficiently Retrieve Properties with Custom Attributes in .NET?

Mendapatkan semula Hartanah dengan Atribut Tersuai: Pendekatan Cekap

Apabila bekerja dengan refleksi dalam .NET, selalunya perlu untuk introspeksi jenis dan ahlinya untuk mengakses maklumat tertentu. Senario biasa melibatkan mendapatkan senarai sifat yang ditandakan dengan atribut tersuai tertentu. Tugas ini boleh dicapai menggunakan kaedah GetCustomAttributes(), tetapi kaedah yang lebih cekap dan ringkas wujud.

Pertimbangkan coretan kod berikut, yang bertujuan untuk mendapatkan semula sifat dengan atribut MyAttribute:

foreach (PropertyInfo prop in t.GetProperties())
{
    object[] attributes = prop.GetCustomAttributes(typeof(MyAttribute), true);
    if (attributes.Length == 1)
    {
         //Property with my custom attribute
    }
}

Walaupun pendekatan ini berfungsi dengan betul, pendekatan ini mengalami instantiasi objek yang tidak diperlukan. Kaedah GetCustomAttributes() mengembalikan tatasusunan kejadian atribut, yang memerlukan peruntukan memori tambahan dan overhed.

Untuk mengoptimumkan kod ini, kami boleh memanfaatkan kaedah Where() dan kaedah Attribute.IsDefined(), seperti yang ditunjukkan di bawah:

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

Coretan kod yang disemak ini dengan ketara meningkatkan kecekapan dengan menggunakan Attribute.IsDefined() untuk mengesahkan kehadiran atribut tanpa membuat instantiating objek atribut. Kaedah Where() menapis koleksi sifat, mengembalikan hanya yang memenuhi predikat yang ditentukan.

Pendekatan ini bukan sahaja memperkemas kod tetapi juga meminimumkan penggunaan memori dengan mengelakkan penciptaan objek yang tidak perlu. Ia menyediakan penyelesaian yang lebih cekap dan elegan untuk mendapatkan semula sifat yang ditandai dengan atribut tersuai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kembali Hartanah dengan Atribut Tersuai dengan Cekap dalam .NET?. 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