2010-08-18 58 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它是为迭代器块生成的类。但是,您应该对这些名称做出任何假设或依靠它们 - 这是实施细节,并可能在任何时候进行更改

相关问题