偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳解C# 4.0中的新對(duì)象ExpandoObject

開(kāi)發(fā) 后端
本文我們將介紹C# 4.0中的新對(duì)象ExpandoObject,這個(gè)類的實(shí)例能夠在運(yùn)行時(shí)動(dòng)態(tài)的增加和刪除成員。

本文是介紹C#4.0中,也就是.NET4.0中的一個(gè)新對(duì)象ExpandoObject,希望通過(guò)對(duì)這個(gè)ExpandoObject類的介紹,能幫助大家更好的理解.NET4.0。

今天無(wú)意中看了4.0的一些新特性,其中看到SystemDynamic 命名空間下的ExpandoObject 類很感興趣,看了篇英文文章給大伙分享下。

先來(lái)看下該類的成員:http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject_members(VS.100).aspx

ExpandoObject instances can add and remove members at run time.什么意思呢?這意味著此類的實(shí)例能夠在運(yùn)行時(shí)動(dòng)態(tài)的增加和刪除成員。其中有個(gè)新概念:dynamic language runtime (DLR)(動(dòng)態(tài)語(yǔ)言運(yùn)行時(shí)),我才疏學(xué)淺,還希望各位專家們多去研究下。

說(shuō)說(shuō)ExpandoObject這個(gè)動(dòng)態(tài)特性的意義吧。我們用XML來(lái)做下對(duì)比:

首先我們創(chuàng)建一個(gè)XML對(duì)象,

  1. XElement contactXML =  
  2.     new XElement("Contact",  
  3.         new XElement("Name""Patrick Hines"),  
  4.         new XElement("Phone""206-555-0144"),  
  5.         new XElement("Address",  
  6.             new XElement("Street1""123 Main St"),  
  7.             new XElement("City""Mercer Island"),  
  8.             new XElement("State""WA"),  
  9.             new XElement("Postal""68042")  
  10.         )  
  11.     ); 

再來(lái)看看Dynamic對(duì)象,

  1. dynamic contact = new ExpandoObject();  
  2. contact.Name = "Patrick Hines";  
  3. contact.Phone = "206-555-0144";  
  4. contact.Address = new ExpandoObject();  
  5. contact.Address.Street = "123 Main St";  
  6. contact.Address.City = "Mercer Island";  
  7. contact.Address.State = "WA";  
  8. contact.Address.Postal = "68402"

首先,我們看下dynamic對(duì)象的聲明:dynamic contact = new ExpandoObject();

我沒(méi)有寫(xiě)成 ExpandoObject contact = new ExpandoObject(), 因?yàn)槲矣渺o態(tài)的ExpandoObject 類型來(lái)聲明則此對(duì)象沒(méi)有在運(yùn)行時(shí)增加成員的特性,所以我使用新的關(guān)鍵字dynamic.

其次,大家能注意到,我創(chuàng)建一個(gè)子節(jié)點(diǎn)只需要?jiǎng)?chuàng)建一個(gè)ExpandoObject實(shí)例作為contact對(duì)象的成員。 這樣你可以很簡(jiǎn)單的看清父子節(jié)點(diǎn)之間的關(guān)系,更重要的是你可以很簡(jiǎn)單的訪問(wèn)每一個(gè)元素。

用LINQ to XML:

  1. Console.WriteLine((string)contactXML.Element("Address").Element("State"));用 ExpandoObject對(duì)象:  
  2. Console.WriteLine(contact.Address.State);可是,當(dāng)你有很多個(gè)contact對(duì)象時(shí)該怎么辦呢?呵呵,看代碼:Code//用XML 方式:XElement contactsXML =    new XElement  
  3. ("Contacts",        new XElement("Contact",            new XElement("Name""Patrick Hines"),   
  4.  new XElement("Phone""206-555-0144")        ),        new XElement("Contact",              
  5. new XElement("Name""Ellen Adams"),              
  6. new XElement("Phone""206-555-0155")        )    );//用dynamic對(duì)象:dynamic contacts = new List();  
  7. contacts.Add(new ExpandoObject());  
  8. contacts[0].Name = "Patrick Hines";  
  9. contacts[0].Phone = "206-555-0144";contacts.Add(new ExpandoObject());  
  10. contacts[1].Name = "Ellen Adams";contacts[1].Phone = "206-555-0155";  
  11. 再來(lái)看看用Linq to Object怎么來(lái)操作dynamic吧,  
  12.  var phones = from c in (contacts as List)
                 where c.Name == "Patrick Hines"
                 select c.Phone;

大家看了這個(gè)新特性有什么感受呢?想不想立刻感受下C# 4.0?不管怎么樣我是很期待啦。。希望.NET越來(lái)越強(qiáng)大~~

原文標(biāo)題:C# 4.0 新對(duì)象ExpandoObject

鏈接:http://www.cnblogs.com/417533880/archive/2009/10/19/1585981.html

【編輯推薦】

  1. C#數(shù)組基礎(chǔ)介紹與操作詳解
  2. 淺析C#數(shù)組初始化性能測(cè)試
  3. C#數(shù)組操作詳細(xì)剖析
  4. 淺析C#數(shù)組操作方法
  5. C#數(shù)組和串操作經(jīng)驗(yàn)總結(jié)
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2009-08-19 16:51:14

C# 4.0 dyna

2009-05-26 09:28:22

C# 4.0dynamic動(dòng)態(tài)類型

2009-08-13 09:46:49

C#歷史C# 4.0新特性

2009-05-26 11:15:31

C# 4.0dynamicVisual Stud

2009-03-10 13:51:36

編譯器VS2010C#

2011-01-14 10:27:18

C#.netasp.net

2009-06-03 14:50:17

C# 4.0泛型協(xié)變性

2009-01-19 10:26:02

C#Namespace.NET

2010-08-17 09:57:39

C#

2009-08-03 18:24:28

C# 4.0協(xié)變和逆變

2009-08-03 11:32:49

C#調(diào)用COM對(duì)象

2009-02-03 09:33:26

動(dòng)態(tài)類型動(dòng)態(tài)編程C# 4.0

2010-01-05 09:26:13

.NET 4.0

2011-03-30 08:27:48

C#

2024-04-03 00:10:24

C#System數(shù)據(jù)

2009-05-08 09:46:37

微軟C#集合對(duì)象

2010-05-25 08:34:10

C# 4.0

2009-07-06 11:00:56

.NET 4.0新特性.NET

2009-08-03 15:06:43

C# Stack對(duì)象C# Queue對(duì)象

2024-03-19 14:18:48

C#后端編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)