C#匿名类型

23 篇文章 0 订阅
一、利用 C# 的匿名类型的功能,可以使用非常简洁的语法来声明一个不可变 (immutable) 的元组类型。元组类型时含有一组属性的类型,这些属性通常以某种方式相互关联。


       – 第一行代码创建了一个匿名类型,我没有在 new 关键字后制定类型名称,所以编译器会为我自动创建一个类型名称,而且不会告诉我这个名称具体是什么。

     – 编译器遇到这一行代码,会推断每个表达式的类型,创建推断类型的私有字段,为每个字段创建公共只读属性,并创建一个构造器来接受所有这些表达式。
     – 在构造器代码中,会用传给它的表达式的求值结构来初始化私有只读字段。
     – 编译器还会重写 Object Equals GetHashCode ToString 方法,并生成所有这些方法中的代码。
     – 编译器支持用另外两种语法声明匿名类型中的属性,它将根据变量推断出属性名和类型: 最终,编译器生成的类看起来像这样:

二、编译器支持用另外两种语法声明匿名类型中的属性,它将根据变量推断出属性名和类型:


三、 匿名类型经常与 LINQ(Language Intergrated Query) 技术配合使用。可用 LINQ 执行查询,从而生成由一组对象构成的集合,这些对象都是相同的匿名类型。


四、 匿名类型的实例不能泄露到一个方法的外部。在方法原型中,无法要求它接受一个匿名类型的参数,因为没有办法指定匿名类型。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值