网站地图 |  TAG标签 |  RSS订阅  【设为首页】  【加入收藏
网站首页   学校介绍   专业设置   师资力量   就业保障   青鸟学社   校园生活   学校新闻   招生简章   网上学堂   博客   开班计划
北大青鸟 北大青鸟咨询服务 北大青鸟报名北大青鸟就业保障 北大青鸟专题 北大青鸟高中生专题 北大青鸟中职生专题 北大青鸟大学生专题 北大青鸟待业者题 北大青鸟跳槽转行专题
当前位置: 首 页 > 网上学堂 > 程序开发 >

北大青鸟华腾教育 .net基础:可变与不可变的匿名类型

来源:未知 编辑:北大青鸟老师 日期:2013-12-11 16:00
在VB.NET中,有很多比较新的概念值得我们去深入的研究。比如匿名类型等。我们通过学习可以知道,VB.NET匿名类型只要可以分为两种,一种是可变匿名类型;另一种则是不可变匿名类型。对于这两种匿名类型,实现和使用的规则也略有不同。

  在VB.NET中,有很多比较新的概念值得我们去深入的研究。比如匿名类型等。我们通过学习可以知道,VB.NET匿名类型只要可以分为两种,一种是可变匿名类型;另一种则是不可变匿名类型。对于这两种匿名类型,实现和使用的规则也略有不同。

  不可变的VB.NET匿名类型

  C#和VB.NET中的不可变匿名类型完全相同。这些匿名类型都是一些只读的属性集合,还包含有Equals、ToString、GetHashCode等方法的重载。从反编译的代码中可以看出,二者的实现存在着些许不同,不过结果却是一样的:Equals和GetHashCode方法都基于类型中的所有字段计算得出。

  C#只允许我们使用不可变的匿名类型。而在VB.NET中若想得到不可变的匿名类型,我们需要使用Select子句或者在类型中每个字段前面加上Key关键字,例如:

  var a = new { Name = "Tom", Age = 25 };

  […] Select c.Name, c.Age

  […] Select New With {Key c.Name, Key c.Age}

  Dim a = New With {Key .Name = "Tom", Key .Age = 25}

  可变的VB.NET匿名类型

  相对于不可变匿名类型,VB.NET中可变的匿名类型则简单得多。这些类型没有Equals或GetHashCode方法,因此若想比较两个对象,我们必须手工进行。可变的匿名类型也不会自动为字段生成属性的Setter。

  例如:

  […] Select New With { c.Name, c.Age }

  Dim b = New With { .Name = "Tom", .Age = 25 }

  部分的VB.NET匿名类型可变的VB.NET匿名类型

  若是匿名类型中的某些(但不是全部)字段被标记为Key,那么我们就创建了一个部分可变的匿名类型。对于这种类型,标记为Key的字段是只读的,而没有标记为Key的字段则可读可写。

  对于部分可变的匿名类型,使用其Equals或GetHashCode方法必须格外小心——只有标记为Key的字段将用于这两个方法中的计算,而其他可变的字段将被忽略。这样的实现有利于把可变字段放置在哈希表中,以提高查询时的效率。

  例如:

  […] Select New With { Key c.Name, c.Age }

  Dim c = New With { Key .Name = "Tom", .Age = 25 }

  VB.NET匿名类型的一些相关介绍就为大家介绍到这里。

温馨提示:如果您对北大青鸟的学费、专业设置、就业推荐有任何疑问,可以点击“在线报名”老师与您联系!

------分隔线----------------------------
  • 复制网址发给好友
  • 收藏本文
若您对这篇文章的内容有疑问或者评论,请在此留言给老师,老师会尽快答复你的。
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
最新留言/评论 浏览更多留言/评论>>
栏目导航
北大青鸟入学咨询服务
    点击咨询 毕业工作分配问题
    点击咨询 毕业学历证书问题
    点击咨询 学费书费杂费问题
    点击申请 免费试听机会
    点击报名 参加技术讲座
课程,学费,就业等资料索取(免费)
       姓 名:
     联系电话:
     qq:
     验证码:
    E-mail:
     
北大青鸟就业明星
    北大青鸟北京华腾校区就业学员 我的选择,我的路
      每个人心中都有梦
    想,尤其在年轻的时
    候。无论这个梦想多么
    的遥不可及,却都寄托
    北大青鸟北京华腾校区就业学员 刘友富,安徽人
      我只有高中学历,
    却能在北京奔驰汽车公
    司上班.感谢北大青鸟
    学校,感谢老师们,祝
北大青鸟免费技术讲座
    讲座日期: 本周六 点击抢座
    讲座时间: 下午1点30分
    讲座地点: 北大青鸟BENET网络工程师校区,第一教室
    主讲老师: 李庆儒老师 , 网络工程师培训金牌讲师
    讲座主题: 我的安全我做主
    讲座内容: 检测、防御、黑客信息,如何过滤不安全的网站,如何防御黑客的进攻。
    咨询电话: 010-82011433
    订座电话: 010-82011432
网友推荐内容