日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
專(zhuān)家揭秘VisualBasic2010的十大新特性

【譯文】今天我們選譯一篇Visual Basic 2010新特性方面的文章,一起來(lái)看看經(jīng)典的VB在新版Visual Studio 2010上又煥發(fā)了怎樣的青春。本文作者Paul Kimmel是經(jīng)驗(yàn)豐富的開(kāi)發(fā)者和國(guó)外老牌技術(shù)網(wǎng)站CodeGuru的專(zhuān)欄作者,曾著有多本面向?qū)ο缶幊毯?NET方面的書(shū)籍。新作《Professional DevExpress ASP.NET Controls》正在Amazon上出售。下面就一起來(lái)看看編寫(xiě)了30多年代碼的老程序員如何看待Visual Basic 2010。

在互助等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站制作,互助網(wǎng)站建設(shè)費(fèi)用合理。

介紹

在今年的MVP大會(huì)上,有人想采訪(fǎng)我“喜歡Windows 7什么功能”,我沒(méi)有接受采訪(fǎng),因?yàn)槲覍?duì)Windows 7沒(méi)什么意見(jiàn)要發(fā)表,我對(duì)Visual Basic倒是有些想法,如果他們?cè)敢鈫?wèn)我Visual Basic 2010的一些問(wèn)題,我絕對(duì)愿意接受采訪(fǎng)。本文就我對(duì)Visual Basic 2010的了解,總結(jié)出10個(gè).Net開(kāi)發(fā)人員應(yīng)該喜歡的特性,希望你也喜歡。同時(shí) .NET頻道向您推薦《Visual Basic開(kāi)發(fā)指南》。

下面就是這10個(gè).NET開(kāi)發(fā)人員會(huì)喜歡的10大特性:

10、使用時(shí)生成 - 在定義它們之前使用類(lèi)和成員

9、突出顯示引用 - 點(diǎn)擊一個(gè)符號(hào),這個(gè)符號(hào)的所有實(shí)例都高亮顯示

8、智能感知完成和建議模式 - 參見(jiàn)第10條

7、導(dǎo)航到 - 在源代碼中搜索一個(gè)符號(hào)

6、集合初始化 - 創(chuàng)建一個(gè)集合并初始化它

5、自動(dòng)執(zhí)行屬性 - 為getter和setter省略的屬性

4、協(xié)方差和逆變性 - 使用更多的派生參數(shù)類(lèi)型

3、多行Lambda表達(dá)式 - 有時(shí)一個(gè)Lambda需要一組語(yǔ)句

2、Lambda表達(dá)式支持Sub

1、延續(xù)字符隱式連接

本文僅選擇其中幾個(gè)進(jìn)行說(shuō)明。

使用時(shí)生成

你這樣做了嗎?假設(shè)你編寫(xiě)了如圖1或清單1所示的一些代碼,IDE將會(huì)自動(dòng)添加波浪線(xiàn),表示Primes類(lèi)型還未聲明,這時(shí)你可以點(diǎn)擊波浪線(xiàn)末尾的紅色下劃線(xiàn),它會(huì)彈出一個(gè)錯(cuò)誤糾正選項(xiàng)列表,如圖2所示,你可以從中選擇一個(gè)糾正操作,我這里選擇“生成類(lèi)Primes”,IDE將會(huì)自動(dòng)為新類(lèi)增加一個(gè)新文件。點(diǎn)擊IsPrime錯(cuò)誤糾正選項(xiàng),IDE將自動(dòng)為你生成方法存根,如圖3所示。

 
圖1:讓IDE自動(dòng)為你生成類(lèi)和方法存根

 
圖:2 選擇生成類(lèi)Primes

 
圖:3 選擇生成方法存根

清單1:使用未聲明的類(lèi)型和成員,讓Visual Studio 2010自動(dòng)為你生成類(lèi)型和成員存根

 
 
 
 
  1. Sub Main()
  2.       Console.WriteLine("is {0} prime: {1}", 5, Primes.IsPrime(5))
  3.       Console.ReadLine()
  4.     End Sub
  5. End Module

清單2:根據(jù)使用到的Primes和IsPrime自動(dòng)生成的代碼

 
 
 
 
  1.     Class Primes
  2.   Shared Function IsPrime(ByVal p1 As Integer) As Object
  3.     Throw New NotImplementedException
  4.   End Function
  5. End Class

Navigate to(導(dǎo)航到...)

“Navigate to”是Visual Studio“編輯”菜單下的一個(gè)菜單項(xiàng)功能,在導(dǎo)航到窗口的“搜索項(xiàng)”區(qū)域輸入關(guān)鍵詞,點(diǎn)擊“搜索”按鈕,在結(jié)果列表中點(diǎn)擊一個(gè)搜索結(jié)果,在窗口下方會(huì)看到一個(gè)簡(jiǎn)單的對(duì)象瀏覽器風(fēng)格的說(shuō)明信息,如圖4所示。

 
圖4: 導(dǎo)航到窗口

在這個(gè)例子中,我準(zhǔn)備導(dǎo)航到IsPrime,點(diǎn)擊確定后就可看到其源代碼了,如清單3所示。

清單3:Primes類(lèi)實(shí)現(xiàn)代碼

 
 
 
 
  1. Class Primes
  2.   Private Shared Primes As List(Of Integer) = New List(Of Integer)
  3.   Shared Sub New()
  4.     Primes.AddRange({2, 3, 5, 7, 11})
  5.     BuildPrimes()
  6.   End Sub
  7.   Shared Function IsPrime(ByVal test As Integer) As Boolean
  8.     For I = 0 To Primes.Count - 1
  9.       If (test Mod Primes(I) = 0) Then Return False
  10.       If (Primes(I) >= Math.Sqrt(test)) Then Exit For
  11.     Next
  12.     Return True
  13.   End Function
  14.   Private Shared Sub BuildPrimes()
  15.     For i = 13 To 1000000
  16.     If (IsPrime(i)) Then
  17.       Primes.Add(i)
  18.     End If
  19.     Next
  20.   End Sub
  21. End Class

集合初始化

集合是一個(gè)集集合、數(shù)組或枚舉量的總稱(chēng),如List(Of T),這里的T是某種類(lèi)型,然后手工添加元素到集合中,集合初始化表示你可以通過(guò)集合初始化語(yǔ)法{項(xiàng)目1,項(xiàng)目2,項(xiàng)目3...項(xiàng)目n}給集合添加項(xiàng)目,如下面的例子表示在AddRange方法中使用了集合初始化。

 
 
 
 
  1. Primes.AddRange({2, 3, 5, 7, 11})

你也可以這樣寫(xiě):

 
 
 
 
  1. Dim somePrimes = {2, 3,5,7,11}
  2. Primes.AddRange(somePrimes)

你也可以使用集合初始化語(yǔ)法初始化一個(gè)復(fù)合對(duì)象的集合。

自動(dòng)執(zhí)行屬性

自動(dòng)執(zhí)行屬性是具有明確的getter和setter塊的屬性聲明,支持字段由編譯器自動(dòng)生成,當(dāng)你使用自動(dòng)屬性時(shí),意味著你要引用屬性而不是字段,當(dāng)getter簡(jiǎn)單地返回字段值,setter簡(jiǎn)單地給支持字段賦一個(gè)值時(shí),使用自動(dòng)執(zhí)行屬性,為Primes (List(Of Integer))實(shí)現(xiàn)的自動(dòng)執(zhí)行屬性代碼如下:

 
 
 
 
  1. Public Shared Property Primes As New List(Of Integer)

自動(dòng)執(zhí)行屬性可以節(jié)省寫(xiě)代碼的時(shí)間,當(dāng)然你也可以使用代碼生成工具,如CodeRush,基于模板生成屬性,通過(guò)這些工具也可以節(jié)省大量的時(shí)間,不過(guò)在VB中就不再需要這些第三方輔助工具了。

理解協(xié)變性和逆變性

協(xié)變性(協(xié)方差)意味著你可以為一個(gè)參數(shù),一個(gè)子類(lèi)型或繼承自已定義類(lèi)型的某些事物使用更多的派生類(lèi)型,逆變性意味著只能使用更少的類(lèi)型,因?yàn)?NET中的一切都派生自對(duì)象,因此你可以使用對(duì)象替換一個(gè)參數(shù)。

這背后的目的都是為了更好地匹配函數(shù)簽名,我見(jiàn)過(guò)最常見(jiàn)的用法是用在事件(或委派類(lèi)型)中,因?yàn)檫@里有許多參數(shù)被定義為對(duì)象。在幫助文件中方差主題描述包括通用接口,集合的用法,委派的用法,通用委派函數(shù)及行為的用法,請(qǐng)參考MSDN幫助主題http://msdn.microsoft.com/en-us/library/dd233060(VS.100).aspx。

定義多行Lambda表達(dá)式

本來(lái)在VB中每個(gè)Lambda表達(dá)式都有一個(gè)Function,每個(gè)方法都有一個(gè)簡(jiǎn)寫(xiě),在VB中的問(wèn)題是Lambda必須返回點(diǎn)什么,但有時(shí)你可能并不希望返回值,使用.Net 4.0和VB時(shí),你可以定義Function Lambda和Sub Lambda表達(dá)式,第一個(gè)例子顯示了一個(gè)Function Lambda,第二個(gè)顯示了一個(gè)Sub Lambda:

 
 
 
 
  1. Module Module1
  2.     Sub Main()
  3.       ' a function Lambda
  4.       Dim PrimeTest = Function(number) Primes.IsPrime(number)
  5.       'a sub Lambda
  6.       Dim WriteLine = Sub(mask, number) Console.WriteLine(mask, 
  7.         number, PrimeTest(number))
  8.       WriteLine("is {0} prime: {1}", 5)
  9.       Console.ReadLine()
  10.     End Sub
  11. End Module

總結(jié)

我從1978年開(kāi)始編程,那時(shí)的編碼速度很慢,很費(fèi)力并且很乏味,而且那個(gè)時(shí)候的程序都比較簡(jiǎn)單,現(xiàn)在我們編寫(xiě)的應(yīng)用程序少則數(shù)十萬(wàn)行代碼,多則上百萬(wàn)行代碼,VB中的新特性,如自動(dòng)執(zhí)行屬性和Lambda表達(dá)式,大大提高了開(kāi)發(fā)人員的生產(chǎn)力,在元編程工具中結(jié)合這些功能可以讓你在代碼世界中自由游弋。

我喜歡這些創(chuàng)新,對(duì)我來(lái)說(shuō),這些創(chuàng)新就等于生產(chǎn)力。

原文:Top Ten Things .NET Developers Will Like About Visual Basic 2010

作者:Paul Kimmel


文章題目:專(zhuān)家揭秘VisualBasic2010的十大新特性
當(dāng)前地址:http://www.dlmjj.cn/article/cdpcoej.html