【问题标题】:C# Anonymous TypeC# 匿名类型
【发布时间】:2009-12-14 18:37:45
【问题描述】:

当我说匿名类型声明时

var someType = new { Name = "乔恩 飞碟”,年龄 = 10 };

但是关键字

var is  implicitly typed

但是当我打印时

Response.Write(someType.GetType().Name);

它产生<>f__AnonymousType02.这个符号<>与什么有关?

【问题讨论】:

  • 虽然类型 logically 没有名称,但元数据格式不允许无名类型,所以我们只选择一个“不可能”的名称。你会注意到我们对匿名函数做同样的事情。如果你够聪明,你可以获取匿名函数的方法信息并询问其名称;你会得到一个类似的“不可能”的名字。我们还为闭包、迭代器块的特殊字段等生成不可能的名称。
  • 希望你在编译器开发团队@Microsoft.Right ?

标签: c# anonymous-types


【解决方案1】:

编译器为您的匿名类型生成一个常规类,并选择一个在 IL 中有效但在 C# 中无效的名称,以防止名称与您的类型名称冲突。

【讨论】:

    【解决方案2】:

    它是类型名称的一部分。这并不意味着任何具体的内容,而是使用不太可能与任何人工编写的代码发生冲突的字符序列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多