课程咨询 :025-84812726

南京.NET培训 > 达内新闻 > 可变与不可变的匿名类型
  • 可变与不可变的匿名类型

    发布:南京.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匿名类型的一些有关介绍就为我们介绍到这儿。

    推荐文章

上一篇:.NET Framework与Windows操作系统

下一篇:ASP.NET中的事务处理和异常处理

最新开班日期  |  更多

.NET工程师--周末班

.NET工程师--周末班

开班日期:01-20

.NET—零基础全日制

.NET—零基础全日制

开班日期:01-20

.NET—零基础周末班

.NET—零基础周末班

开班日期:01-20

.NET工程师--全日制班

.NET工程师--全日制班

开班日期:01-20

  • 地址:南京市龙蟠中路30号东来商务中心A座5楼
  • 课程培训电话:025-84812726     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tarena.com.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56