匿名类型

匿名类型,第1张

匿名类型

编辑:下面的列表适用于C#匿名类型。VB.NET具有不同的规则-
特别是,它可以生成可变的匿名类型(默认情况下会生成)。贾里德(Jared)在评论中指出,命名方式也有所不同。基本上,这一切都很脆弱…

您无法在一般约束中识别它,但是:

  • 它将是一个类(而不是接口,枚举,结构等)
  • 它将应用CompilerGeneratedAttribute
  • 它将覆盖Equals,GetHashCode和ToString
  • 它将在全局名称空间中
  • 它不会嵌套在其他类型中
  • 这将是内部的
  • 将被密封
  • 它将直接从
    object
  • 它将具有与属性一样多的类型参数。(您 可以 有一个没有属性的非泛型匿名类型。尽管如此,这毫无意义。)
  • 每个属性将具有一个类型参数,其名称包括属性名称,并且将具有该类型参数,例如Name属性将成为类型<> _ Name的属性
  • 每个属性都是公开且只读的
  • 对于每个属性,将有一个对应的只读专用字段
  • 将没有其他属性或字段
  • 将有一个构造函数采用一个与每个类型参数相对应的参数,其顺序与类型参数相同
  • 每个方法和属性都将应用DebuggerHiddenAttribute。
  • 类型的名称将以“ <>”开头,并包含“ AnonymousType”

但是,规范对此几乎没有保证-因此在下一版本的编译器中,或者如果您使用Mono等,都可能会更改。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4923194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存