2010-08-18 34 views
3

例如:編譯.NET程序集時,名稱中包含x__的類是什麼?

  • StudentRegistrationService<>c__DisplayClass1
  • <>f__AnonymousType56`2
  • DocShareClassification<GetErrors>d__2

我相當肯定的是StudentRegistrationService<>c__DisplayClass1是一個閉合,而當指定了一個匿名類型生成<>f__AnonymousType56`2,但我從未見過d__課。除了這些還有什麼不一樣嗎?

+0

爲什麼這會很重要?我的意思是,列出未來任何版本或服務包中可能會改變的內部無證件事物並不會帶來太多價值,因爲我們不應該依賴它們。 – 2010-08-18 14:24:07

+0

好奇心。我在PartCover測試覆蓋率結果中看到了他們,並且想知道哪些(如果有的話)足夠重要以涵蓋覆蓋報告。 – 2010-08-18 14:51:06

+0

@Jeremy,我會排除使用'CompilerGenerated'屬性標記的任何方法。 – JaredPar 2010-08-18 14:55:20

回答

1

即是在通過使用匿名類型

6

這些是由C#編譯器,以便支持至少以下特徵

  • 瓶蓋/匿名方法表達式生成的類創建編譯生成時間類
  • 匿名類型
  • 迭代

d__2其中一個可能是幫助上課的迭代器。

0

IIRC它是爲迭代器塊生成的類。但是,您應該對這些名稱做出任何假設或依靠它們 - 這是實施細節,並可能在任何時候進行更改

相關問題