av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

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

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

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)雨花臺(tái)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

不可變的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匿名類型

相對(duì)于不可變匿名類型,VB.NET中可變的匿名類型則簡(jiǎn)單得多。這些類型沒有Equals或GetHashCode方法,因此若想比較兩個(gè)對(duì)象,我們必須手工進(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è)部分可變的匿名類型。對(duì)于這種類型,標(biāo)記為Key的字段是只讀的,而沒有標(biāo)記為Key的字段則可讀可寫。

對(duì)于部分可變的匿名類型,使用其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)介紹就為大家介紹到這里。


網(wǎng)站題目:VB.NET匿名類型可變與不可變之間區(qū)別
網(wǎng)站URL:http://uogjgqi.cn/article/cososii.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流