普通类型和匿名类型之间有什么区别?

时间:2013-10-01 23:16:22

标签: c# types anonymous-types

C#中的普通类型和匿名类型之间的区别在于运行时的编译过程和内存管理?匿名类型在某种程度上比普通类型更有效吗?

2 个答案:

答案 0 :(得分:10)

来自MSDN: -

  

匿名类型提供了一种方便的方法来封装一组   只读属性到单个对象而不必先   明确定义一个类型。类型名称由编译器生成   并且在源代码级别不可用。的类型   属性由编译器推断。

     

<强>说明:

     

匿名类型是直接从对象派生的引用类型。   虽然您的应用程序无法访问,但编译器会为它们命名   它。从公共语言运行时的角度来看,是匿名的   type与任何其他引用类型没有区别,除了它   除了对象之外,不能转换为任何类型。

答案 1 :(得分:3)

  

C#中普通类型和匿名类型之间在运行时内存管理方面的区别是什么?匿名类型在某种程度上比普通类型更低效吗?

匿名类型既不是通用内部类,也不是具有构造函数,只读字段以及GetHashCodeToString的实现的通用内部类。就运行时而言,它们并没有什么特别之处。运行时不知道它们是“匿名的”;运行时将它们视为另一个类。生成的代码没什么特别的。

  

关于编译过程,C#中普通类型和匿名类型之间有什么区别?

我不知道这个问题意味着什么。