tal*_*les 2 c# anonymous-types dynamic-typing expandoobject
随着dynamic
我们非常有动感指针,但不完全是一个动态对象.C#中真正的动态对象是ExpandoObject,但对于大多数人来说,这是一个非常未知的类.expando允许在运行时创建和删除成员,就像哈希(类似于JavaScript).
为什么ExpandoObject的优点是在一个单独的类中实现的,而不仅仅是,作为匿名类型的一个特性实现?
也许这不是一个好的举动,因为缺乏类型安全?或者可能是由于涉及(DLR)开销?
因为匿名类型具有其他非常重要的功能 - 它们为您提供编译时类型安全性.
因为dynamic
和匿名类型只是不同的概念.第一个允许您在运行时分派对象成员,第二个允许您创建具有一些基本功能(相等,哈希码等)的静态类型对象,而无需创建相应的POCO类.为什么他们应该以同样的方式实施呢?
顺便说一句.我使用它们非常多,而且很少需要dynamic
用来处理它们.您确定正确使用这些语言功能吗?
更新
我认为这是匿名类型教程中非常重要的部分:
如果必须存储查询结果或将它们传递到方法边界之外,请考虑使用普通的命名结构或类而不是匿名类型.
归档时间: |
|
查看次数: |
1483 次 |
最近记录: |