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

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

編輯:關於C語言

多個匿名類型

如果你創建了多個相似的匿名類型,C#編譯器會聰明的發現這一點,只 生成一個類和它的兩個實例,比如你輸入如下代碼:

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};
   var p2 = new {Name = "A", Price = 3};
   Console.WriteLine("Name = {0}\nPrice = {1}",p1.Name, p1.Price);
    Console.ReadLine();
  }
 }
}

當你編譯完 並用ILDASM打開的時候,結構如下所示:

圖 2

你可以看到,因為聲明是類似的,所以C#只創建了一個匿名類,因而優 化了程序。但是如果它們不是很類似的話,就會有兩個匿名類。

稍微修 改以上代碼,如下:

new {Name = "A", Price = 3};
var p2 = new {Name = "A"};

圖3

你可以看到,C#創建了兩個類,<Projection>f__0 and <Projection>f__1。

總結

這裡我們可以看到,匿名類型為 程序員提供了一種機制,該機制使得你無須清晰的聲明類結構。而且,C# 3.0編 譯器非常的智能化,在你擁有多個相似的匿名類型時只創建一個匿名類型從而達 到了優化程序的目的。

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