2009-12-14 141 views
3

当我说匿名类型声明C#匿名类型

VAR SOMETYPE =新的{名称= “乔恩 碟”,年龄= 10};

然而关键字

var is implicitly typed 

但是当我打印

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

它产生这是什么符号<>涉及?

+6

虽然类型*逻辑*没有名称,但元数据格式不允许无名类型,所以我们只需选择一个“不可能”的名称。你会注意到我们为匿名*函数*做了同样的事情。如果你很聪明,你可以得到一个匿名函数的方法信息并询问它的名字;你会得到一个类似的“不可能”的名字。我们还为闭包,迭代器块的特殊字段等生成不可能的名称。 – 2009-12-14 18:53:03

+0

我希望你在编译器开发团队@Microsoft.Right? – Russel 2009-12-14 19:04:06

+1

尝试点击他的名字。 – 2009-12-14 19:28:38

回答

11

编译器生成一个普通类的匿名类型,并选择一个名称,在IL有效,但不是在C#防止名称冲突与你的类型名称。

1

它是类型名称的一部分。它并不意味着任何特定的内容,而是使用一系列不可能与任何人类编写的代码相冲突的字符序列。