自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單介紹VB.NET和C#

開(kāi)發(fā) 后端
這里介紹在VB.NET和C#第一次被發(fā)布時(shí),很多人認(rèn)為它們只是在語(yǔ)法和一些小的方面不一樣的相同語(yǔ)言而已,隨著時(shí)間的推移,VB.NET和C#之間的不同越來(lái)越明顯,比如對(duì)匿名類型(Anonymous Type)的處理就有著天壤之別。

在VB.NET和C#***次被發(fā)布時(shí),很多人認(rèn)為它們只是在語(yǔ)法和一些小的方面不一樣的相同語(yǔ)言而已。但隨著時(shí)間的推移,VB.NET和C#之間的不同越來(lái)越明顯,比如對(duì)匿名類型(Anonymous Type)的處理就有著天壤之別。

為了支持類似哈希表的數(shù)據(jù)結(jié)構(gòu)和像分組這樣的查詢操作,由LINQ創(chuàng)建的匿名類型必須提供穩(wěn)定的哈希碼。而哈希碼通常是由對(duì)象里的字段(Field)來(lái)創(chuàng)建的。

早期的匿名類型版本是不穩(wěn)定的。換句話說(shuō),對(duì)象所包含的值可能會(huì)改變。而改變那些值的同時(shí)也改變了哈希碼,然后會(huì)破壞一些哈希表或者恰好儲(chǔ)存了對(duì)象的字典。

C#團(tuán)隊(duì)使得匿名類型穩(wěn)定下來(lái)。如果對(duì)象不能被改變,那么哈希碼也永遠(yuǎn)不變。通常這些穩(wěn)定的類型規(guī)則被放在非默認(rèn)的構(gòu)造器(Constructor)和只有Getter的屬性(Property)里。

而VB團(tuán)隊(duì)卻不想放棄修改匿名類的功能。Paul Vick這樣寫到:

盡管是有這樣的問(wèn)題存在,我們不想在潑水的時(shí)候把孩子也扔掉?,F(xiàn)在匿名類型某種程度上是受限的,因?yàn)樗鼈儾荒鼙幻?,但是將?lái)你可以用綁定來(lái)應(yīng)用它們,甚至在它們被聲明的上下文(Context)外面?,F(xiàn)在我們?cè)谂Φ囊恍┬绿匦?,比如有名字的匿名類型(Nominal Anonymous Type)和動(dòng)態(tài)接口,將來(lái)會(huì)使匿名類型更加有用。本身而言,要使匿名類型穩(wěn)定下來(lái)是不可想象的,特別是因?yàn)檫@會(huì)導(dǎo)致只有一條險(xiǎn)徑可走——也就是一旦它們穩(wěn)定了,在未來(lái)的某個(gè)時(shí)候,兼容性會(huì)使它想要再不穩(wěn)定變得異常困難,如果它們想要這么做的話。

VB團(tuán)隊(duì)選擇了一個(gè)相對(duì)復(fù)雜的方案,但這會(huì)給開(kāi)發(fā)者更多的靈活性。當(dāng)創(chuàng)建匿名類型時(shí),程序員可以用關(guān)鍵詞“Key”表示那些字段是穩(wěn)定的。另外要使屬性只讀的話,哈希碼函數(shù)會(huì)只用那些Key字段產(chǎn)生哈希碼。結(jié)果就是哈希碼保證是穩(wěn)定的。而且在被條件子句(Clause)用在聯(lián)合(Join)和分組(Group)里時(shí),字段可以被編譯器自動(dòng)地標(biāo)識(shí)成Key。

VB.NET和C#之所以能不同的實(shí)現(xiàn)方式是因?yàn)槟涿愋褪且粋€(gè)編譯器特性。CLR自己對(duì)匿名類型沒(méi)有什么概念,只是把它們看作有著自動(dòng)產(chǎn)生名字的普通類。

和VB其他的語(yǔ)法一樣,這個(gè)功能在Orcas Beta 2版本中才會(huì)提供。

【編輯推薦】

  1. C#特有線程功能
  2. 淺談C#對(duì)象和集合
  3. 淺析C# FTP WebRequest對(duì)象
  4. C#分部方法的應(yīng)用場(chǎng)景
  5. 概述C#線程功能
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-11-03 14:13:23

VB.NET C#

2009-09-07 15:04:07

2009-11-10 10:28:20

VB.NET誕生

2009-10-12 13:19:14

VB.NET線程同步

2009-10-30 14:21:00

VB.NET開(kāi)發(fā)語(yǔ)言

2010-01-07 16:40:13

VB.NET一維數(shù)組

2009-11-02 10:36:16

VB.NET Sub

2009-04-28 10:23:58

VB.NETC#對(duì)比

2009-06-12 09:22:44

VB.NET類型C#

2009-11-02 16:47:18

VB.NET C#

2009-08-20 18:44:54

C#和ADO.NET

2009-07-28 17:03:55

ASP.NET VB.

2009-10-16 13:26:53

VB.NET Exce

2009-10-28 09:55:29

VB.NET MyCl

2010-01-11 18:32:42

VB.NET序列化

2009-10-23 17:22:48

VB.NET編程

2009-10-29 14:02:24

VB和VB.NET比較

2009-08-13 14:52:21

.NET性能誤區(qū)C#和VB.NET

2009-07-06 11:00:56

.NET 4.0新特性.NET

2009-10-09 17:40:38

VB.Net問(wèn)題集
點(diǎn)贊
收藏

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