深圳.net培训
达内深圳罗湖中心

186-8884-0703

热门课程

【达内.NET教程】可变与不可变的匿名类型

  • 时间:2016-08-25
  • 发布:深圳.Net培训
  • 来源:达内新闻

在VB.NET中,有许多对比新的概念值得咱们去深入的研讨。比方匿名类型等。深圳达内.NET培训(sz.net.tedu.cn)专家认为VB.NET匿名类型只需能够分为两种,一种是可变匿名类型;另一种则是不可变匿名类型。关于这两种匿名类型,完成和运用的规则也略有不相同。

【达内.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培训、.NET就业、.NET薪资、.NET教程等内容,请访问达内深圳.NET培训官方网站!众多资深.NET大神级讲师为您答疑解惑!

上一篇:【达内.NET教程】如何获取程序运行路径?
下一篇:【达内.NET教程】.net结构化异常处理的方法

.NET应用程序调试—原理、工具、方法(多图+精华)

老外编辑带你迈出自己容器化的第一步

四个月他们凭什么月薪上万?

.net的五层架构

选择城市和中心
贵州省

广西省

海南省

台湾