Mencipta Sifat Dinamik dalam C#
Dalam C#, sifat statik boleh dibuat untuk kelas. Walau bagaimanapun, keperluan mungkin timbul untuk menambah sifat tambahan secara dinamik pada objek semasa masa jalan. Selain itu, keupayaan pengisihan dan penapisan mungkin diingini.
Menambah Sifat Dinamik
Untuk mencapai matlamat ini, kamus boleh digunakan. Sebagai contoh, kod berikut menggunakan kamus untuk menyimpan sifat dinamik:
Dictionary<string, object> properties = new Dictionary<string, object>();
Ini membolehkan penambahan sifat dinamik pada objek menggunakan sintaks kurungan segi empat sama:
properties["propertyName"] = value;
Isih dan Penapisan
Untuk melaksanakan pengisihan dan penapisan, contoh yang disediakan menggunakan Kaedah Where and Select LINQ untuk penapisan, dan kelas pembanding tersuai untuk pengisihan. Berikut ialah contoh:
// Example comparer class for sorting public class Comparer<T> : IComparer<ObjectWithProperties> where T : IComparable { string attributeName; public Comparer(string attributeName) { this.attributeName = attributeName; } public int Compare(ObjectWithProperties x, ObjectWithProperties y) { return ((T)x[attributeName]).CompareTo((T)y[attributeName]); } } // Example of filtering var filteredObjects = from obj in objects where (int)obj["propertyName"] >= 150 select obj; // Example of sorting Comparer<int> comparer = new Comparer<int>("propertyName"); objects.Sort(comparer);
Dengan menggunakan teknik ini, sifat dinamik boleh ditambahkan pada objek pada masa jalan, bersama-sama dengan keupayaan pengisihan dan penapisan.
Atas ialah kandungan terperinci Bagaimana untuk Menambah, Mengisih, dan Menapis Sifat Dinamik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!