【发布时间】:2014-02-28 05:01:19
【问题描述】:
在C# 中使用匿名类型是不是很糟糕?
【问题讨论】:
在C# 中使用匿名类型是不是很糟糕?
【问题讨论】:
不,不是。它们是在编译时生成的代码类,性能与普通类一样。
【讨论】:
就性能而言,它们与其他类型一样。
编辑
为了更清楚,我应该说它们的性能与其他类型完全相同,因为它们与其他类型完全相同,除了编译器生成名称这一事实。性能受到影响的唯一方法是将匿名类型的实例传递到另一个范围,其中必须使用反射或 dynamic 来访问属性。这会很昂贵,因为它涉及后期绑定以在运行时解决所有问题。
【讨论】:
匿名类型本身不好吗?不。如果他们是 C# 团队,肯定不会浪费时间将其添加到语言中。在引擎盖下,它们只是编译成标准的 CLR 类型。
匿名类型是否可以像几乎所有其他语言功能一样被滥用到无法执行的程度。当然。
【讨论】:
C# 中的匿名类型仍然是静态类型,访问其方法和属性由编译器解析。性能与显式类型相当。
【讨论】:
还不错,有时很方便。例如,在使用 Linq 时,与其创建一个只会使用一次的类,不如使用匿名类型。
【讨论】: