成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解C# 4.0中的新對象ExpandoObject

開發 后端
本文我們將介紹C# 4.0中的新對象ExpandoObject,這個類的實例能夠在運行時動態的增加和刪除成員。

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

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

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

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

說說ExpandoObject這個動態特性的意義吧。我們用XML來做下對比:

首先我們創建一個XML對象,

  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.     ); 

再來看看Dynamic對象,

  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對象的聲明:dynamic contact = new ExpandoObject();

我沒有寫成 ExpandoObject contact = new ExpandoObject(), 因為我用靜態的ExpandoObject 類型來聲明則此對象沒有在運行時增加成員的特性,所以我使用新的關鍵字dynamic.

其次,大家能注意到,我創建一個子節點只需要創建一個ExpandoObject實例作為contact對象的成員。 這樣你可以很簡單的看清父子節點之間的關系,更重要的是你可以很簡單的訪問每一個元素。

用LINQ to XML:

  1. Console.WriteLine((string)contactXML.Element("Address").Element("State"));用 ExpandoObject對象:  
  2. Console.WriteLine(contact.Address.State);可是,當你有很多個contact對象時該怎么辦呢?呵呵,看代碼: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對象: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. 再來看看用Linq to Object怎么來操作dynamic吧,  
  12.  var phones = from c in (contacts as List)
                 where c.Name == "Patrick Hines"
                 select c.Phone;

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

原文標題:C# 4.0 新對象ExpandoObject

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

【編輯推薦】

  1. C#數組基礎介紹與操作詳解
  2. 淺析C#數組初始化性能測試
  3. C#數組操作詳細剖析
  4. 淺析C#數組操作方法
  5. C#數組和串操作經驗總結
責任編輯:彭凡 來源: 博客園
相關推薦

2009-08-19 16:51:14

C# 4.0 dyna

2009-05-26 09:28:22

C# 4.0dynamic動態類型

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泛型協變性

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協變和逆變

2009-08-03 11:32:49

C#調用COM對象

2009-02-03 09:33:26

動態類型動態編程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數據

2009-05-08 09:46:37

微軟C#集合對象

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對象C# Queue對象

2024-03-19 14:18:48

C#后端編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产午夜av片| 午夜精品久久久久久不卡欧美一级 | 国产精品国产亚洲精品看不卡15 | 成人精品一区二区三区 | 99re66在线观看精品热 | 国产视频中文字幕 | 国产精品精品视频 | 天天人人精品 | 久日精品 | 午夜影院| 久久夜视频 | 浮生影院免费观看中文版 | 99国产精品久久久 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 国产综合久久 | 第四色狠狠 | 青青草视频网 | 黄色免费在线网址 | 最新av在线播放 | 欧美性久久 | 成人免费共享视频 | 国产一二区免费视频 | 天天拍天天操 | 91成人精品视频 | 国产高清视频在线播放 | 91精品国产综合久久香蕉麻豆 | 狠狠干综合视频 | 亚洲一区二区视频在线观看 | 日韩精品在线一区 | 中文字幕欧美一区 | 亚洲一区中文字幕 | 国产精品永久在线观看 | 丁香五月网久久综合 | 精品欧美一区二区在线观看欧美熟 | 亚洲一区二区三区四区五区中文 | 99在线免费视频 | 成人a视频| 台湾a级理论片在线观看 | 免费黄色在线观看 | 久久综合狠狠综合久久综合88 | 国产精品视频播放 |