首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 3.0 匿名類型進階:編譯器類型複用優化與多實例驗證

     編輯:關於C語言

編譯器智能類型複用

同一程序集中,屬性名、類型、順序完全一致的匿名類型初始化器,編譯器只生成一個內部類型,所有實例共用該類型。

驗證代碼


var p1 = new { Name = "A", Price = 3 };
var p2 = new { Name = "A", Price = 3 };
// ILDASM 顯示:僅有一個 f__0 類型,p1/p2 均為其實例

結構差異導致獨立類型

修改屬性集合或順序,編譯器生成不同類型:


var p1 = new { Name = "A", Price = 3 };
var p2 = new { Name = "A" }; // 缺少 Price
// ILDASM 顯示:f__0 和 f__1 兩個獨立類型

總結

  • 匿名類型為編譯期類型合成,非運行期動態類型
  • 編譯器按結構特徵(名/型/序)自動去重,優化類型數量
  • 結構微小差異即產生新類型,順序敏感
  • 無法跨程序集傳遞(不同程序集即使結構相同也生成不同類型)

理解此機制,有助於正確設計跨方法/程序集邊界的數據傳遞策略(映射到 DTO/Record)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved