程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 4.0 新對象ExpandoObject

C# 4.0 新對象ExpandoObject

編輯:C#入門知識

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

先來看下該類的成員:

  http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject_members(VS.100).aspx

再來看看Dynamic對象  dynamic contact = new ExpandoObject();
contact.Name = "Patrick Hines";
contact.Phone = "206-555-0144";
contact.Address = new ExpandoObject();
contact.Address.Street = "123 Main St";
contact.Address.City = "Mercer Island";
contact.Address.State = "WA";
contact.Address.Postal = "68402";

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

 

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

其次,大家能注意到,我創建一個子節點只需要創建一個ExpandoObject實例作為contact對象的成員。

這樣你可以很簡單的看清父子節點之間的關系,更重要的是你可以很簡單的訪問每一個元素。

用linq to XML:

Console.WriteLine((string)contactXML.Element("Address").Element("State"));

用 ExpandoObject對象:

Console.WriteLine(contact.Address.State);
可是,當你有很多個contact對象時該怎麼辦呢?
呵呵,看代碼:

 //用XML 方式:
XElement contactsXML =
    new XElement("Contacts",
        new XElement("Contact",
            new XElement("Name", "Patrick Hines"),
            new XElement("Phone", "206-555-0144")
        ),
        new XElement("Contact",
            new XElement("Name", "Ellen Adams"),
            new XElement("Phone", "206-555-0155")
        )
  &n

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved