偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

VB.NET匿名類型可變與不可變之間區(qū)別

開發(fā) 后端
可變匿名類型與不可變匿名類型是VB.NET匿名類型的兩種類型。我們可以通過本文介紹的內(nèi)容對這兩種類型的使用規(guī)則進(jìn)行一個(gè)詳細(xì)了解。

VB.NET中,有很多比較新的概念值得我們?nèi)ド钊氲难芯俊1热缒涿愋偷?。我們通過學(xué)習(xí)可以知道,VB.NET匿名類型只要可以分為兩種,一種是可變匿名類型;另一種則是不可變匿名類型。對于這兩種匿名類型,實(shí)現(xiàn)和使用的規(guī)則也略有不同。#t#

不可變的VB.NET匿名類型

C#和VB.NET中的不可變匿名類型完全相同。這些匿名類型都是一些只讀的屬性集合,還包含有Equals、ToString、GetHashCode等方法的重載。從反編譯的代碼中可以看出,二者的實(shí)現(xiàn)存在著些許不同,不過結(jié)果卻是一樣的:Equals和GetHashCode方法都基于類型中的所有字段計(jì)算得出。

C#只允許我們使用不可變的匿名類型。而在VB.NET中若想得到不可變的匿名類型,我們需要使用Select子句或者在類型中每個(gè)字段前面加上Key關(guān)鍵字,例如:

  1. var a = new { Name = "Tom"Age = 25 };   
  2. […]   
  3. Select c.Name, c.Age   
  4. […]   
  5. Select New With {Key c.Name, Key c.Age}   
  6. Dim a = New With {Key .Name = "Tom", Key .Age = 25}  

可變的VB.NET匿名類型

相對于不可變匿名類型,VB.NET中可變的匿名類型則簡單得多。這些類型沒有Equals或GetHashCode方法,因此若想比較兩個(gè)對象,我們必須手工進(jìn)行??勺兊哪涿愋鸵膊粫?huì)自動(dòng)為字段生成屬性的Setter。

例如:

 

  1. […]   
  2. Select New With   
  3. {   
  4. c.Name, c.Age  
  5. }   
  6. Dim b = New With   
  7. {   
  8. .Name = "Tom".Age = 25 

 

部分可變的VB.NET匿名類型

若是匿名類型中的某些(但不是全部)字段被標(biāo)記為Key,那么我們就創(chuàng)建了一個(gè)部分可變的匿名類型。對于這種類型,標(biāo)記為Key的字段是只讀的,而沒有標(biāo)記為Key的字段則可讀可寫。

對于部分可變的匿名類型,使用其Equals或GetHashCode方法必須格外小心——只有標(biāo)記為Key的字段將用于這兩個(gè)方法中的計(jì)算,而其他可變的字段將被忽略。這樣的實(shí)現(xiàn)有利于把可變字段放置在哈希表中,以提高查詢時(shí)的效率。

例如:

 

  1. […]   
  2. Select New With   
  3. {  
  4. Key c.Name, c.Age  
  5. }   
  6. Dim c = New With   
  7. {  
  8. Key .Name = "Tom".Age = 25 
  9. }  

VB.NET匿名類型的一些相關(guān)介紹就為大家介紹到這里。

責(zé)任編輯:曹凱 來源: 中國IT實(shí)驗(yàn)室
相關(guān)推薦

2024-02-26 10:47:09

Python數(shù)據(jù)類型開發(fā)

2024-04-08 07:58:11

Python數(shù)據(jù)類型字符串

2022-07-13 16:38:32

Python可變數(shù)據(jù)類型不可變數(shù)據(jù)類型

2009-11-02 17:12:01

VB和VB.NET

2010-01-15 10:47:15

VB.NET命名空間

2009-10-13 14:38:10

VB.NET訪問類型

2009-10-10 17:06:09

VB和VB.NET

2023-06-07 19:17:14

UbuntuKDELinux

2009-08-28 15:35:31

C#與VB.net

2010-01-08 16:19:00

VB.NET類型單位命

2009-10-13 16:05:07

VB.NET字符數(shù)據(jù)類

2010-01-14 14:21:07

2010-01-22 10:27:02

VB.NET類型提升

2009-10-14 14:50:16

VB6.0VB.NET

2009-10-23 12:53:25

VB.NET語言

2024-09-24 08:36:18

2009-10-29 14:02:24

VB和VB.NET比較

2009-10-20 14:21:55

VB.NET fnSi

2009-10-14 12:51:41

VB.NET Data

2009-10-22 09:58:35

VB.NET Send
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)