Rumah >pembangunan bahagian belakang >C++ >ExpandoObject lwn. Kamus: Bilakah Tugasan Harta Dinamik Menawarkan Kelebihan Nyata?
Faedah Sebenar ExpandoObject
Pengenalan
Kelas ExpandoObject yang diperkenalkan dalam .NET 4 membenarkan pembangun untuk secara dinamik menetapkan sifat kepada objek semasa runtime. Ini telah membawa kepada persoalan tentang kelebihannya berbanding struktur kamus tradisional.
Syntactic Sugar
Walaupun ExpandoObject mungkin kelihatan meningkatkan sintaks dengan memudahkan akses sifat, ia tidak menawarkan fungsi yang ketara. faedah berbanding kamus. Kod berikut:
dynamic obj = new ExpandoObject(); obj.MyInt = 3; obj.MyString = "Foo"; Console.WriteLine(obj.MyString);
Adalah pada asasnya bersamaan dengan:
var obj = new Dictionary<string, object>(); obj["MyInt"] = 3; obj["MyString"] = "Foo"; Console.WriteLine(obj["MyString"]);
Perwakilan Objek Hierarki
Satu kelebihan potensi ExpandoObject terletak pada keupayaan untuk mencipta objek hierarki yang kompleks. Contohnya:
Dictionary<String, object> dict = new Dictionary<string, object>(); Dictionary<String, object> address = new Dictionary<string,object>(); dict["Address"] = address; address["State"] = "WA"; Console.WriteLine(((Dictionary<string,object>)dict["Address"])["State"]);
Kod ini menjadi lebih mudah dibaca dengan ExpandoObject:
dynamic expando = new ExpandoObject(); expando.Address = new ExpandoObject(); expando.Address.State = "WA"; Console.WriteLine(expando.Address.State);
Pengendalian Acara dan Pemberitahuan Harta
ExpandoObject melaksanakan Antara muka INotifyPropertyChanged, memberikan kawalan yang lebih besar ke atas sifat berbanding kamus. Selain itu, acara boleh ditambahkan pada ExpandoObject, membolehkan pengendalian acara dinamik.
Atas ialah kandungan terperinci ExpandoObject lwn. Kamus: Bilakah Tugasan Harta Dinamik Menawarkan Kelebihan Nyata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!