簡體   English   中英

C#中匿名類型的性能

[英]Performance of anonymous types in C#

C#中使用匿名類型是不是很糟糕?

不它不是。 它們是在編譯時生成的代碼類,並且與普通類一樣執行。

就性能而言,它們就像其他類型一樣。

編輯

更清楚的是,我應該說它們的表現與其他類型完全相同,因為它們與其他類型完全相同,除了編譯器生成名稱的事實。 性能受到影響的唯一方法是將匿名類型的實例傳遞給另一個范圍,其中只需使用反射或dynamic來訪問屬性。 這將是昂貴的,因為它涉及后期綁定以在運行時解決所有問題。

匿名類型本身是不是很糟糕? 不。如果他們是C#團隊,那么肯定不會浪費時間將它添加到語言中。 在引擎蓋下,他們只需編譯成標准的CLR類型。

匿名類型,例如幾乎所有其他語言特征,都可以被濫用到不具備性能的程度。 當然。

C#中的匿名類型仍然是靜態類型,並且編譯器會解析訪問其方法和屬性的問題。 性能與顯式類型相當。

它不錯,有時它很方便。 例如,在使用Linq時,不是創建只使用一次的類,而是使用匿名類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM