程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 3.0中新匿名類型特性初體驗(2)

C# 3.0中新匿名類型特性初體驗(2)

編輯:關於C語言

你可以這樣創建一個使用匿名類型的工程:

1. 打開Visual Studio 2005編輯器,創建一個新工程,選擇LINQ Console作為工程模板;

2. 將新工程命名為AnonTypes並且點擊OK;

3. 在編輯器裡輸入 如下代碼:

// Program.cs
using System;
using System.Query;
using System.Data.DLinq;
namespace AnonTypes
{
 class Program
 {
  static void Main(string[] args)
  {
   var p1 = new {Name = "A", Price = 3};
   Console.WriteLine("Name = {0}\nPrice = {1}",p1.Name, p1.Price);
    Console.ReadLine();
  }
 }
}

4. 編譯程 序

5. 執行程序,獲得如下結果:

Name = A
Price = 3

如果你沒有Visual Studio 2005,你仍然可以通過命令行來編 譯你的代碼:

C:\Program Files\LINQ PrevIEw\Bin\Csc.exe
/reference:"C:\Program Files\LINQ PrevIEw\Bin\System.Data.DLinq.dll"
/reference: System.dll
/reference:"C:\Program Files\LINQ PrevIEw\Bin\System.Query.dll"
/out:AnonTypes.exe /target:exe Program.cs

盡管你沒有清晰的在代碼裡定義一個類,但是C#編譯 器自動做了如下工作:

1. 解析類型

2. 創建一個新的類(擁有 name和price屬性)

3. 使用這個類來初始化一個新對象

4. 將傳 來的參數指定給對象

深入解析代碼

為了了解編譯器如何創建一個 新類的,打開ILDASM(在C:\Program Files\Microsoft Visual Studio 8 \SDK\v2.0\Bin下)並且選擇最近的編譯程序集,AnonTypes.exe。打開樹狀視圖 ,你可以看到如圖1所示的視圖:

圖 1

如果你仔細看,ILDASM展示了一個匿名類型 "<Projection>f__0"是如何被創建的。和類同時被創建的是私 有變量_Name和_Price。對這兩個變量的Get和Set方法也同時被創建,他們也擁 有屬性Name和Price。

雙擊任何方法或者變量來看的清楚一些,如你點擊 Name屬性,你將會看到如下代碼:

.property instance string Name()
{
.get instance string AnonTypes.Program/
'<Projection>f__0'::get_Name()
.set instance void AnonTypes.Program/
'<Projection>f__0'::set_Name (string)
} // end of property '<Projection>f__0'::Name

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