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

專家揭秘Visual Basic 2010的十大新特性

原創(chuàng)
開發(fā) 后端
本文就我對Visual Basic 2010的了解,總結(jié)出10個.NET開發(fā)人員應(yīng)該喜歡的特性,希望你也喜歡。

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

介紹

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

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

10、使用時生成 - 在定義它們之前使用類和成員

9、突出顯示引用 - 點擊一個符號,這個符號的所有實例都高亮顯示

8、智能感知完成和建議模式 - 參見第10條

7、導航到 - 在源代碼中搜索一個符號

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

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

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

3、多行Lambda表達式 - 有時一個Lambda需要一組語句

2、Lambda表達式支持Sub

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

本文僅選擇其中幾個進行說明。

使用時生成

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

讓IDE自動為你生成類和方法存根 
圖1:讓IDE自動為你生成類和方法存根

選擇生成類Primes 
圖:2 選擇生成類Primes

選擇生成方法存根 
圖:3 選擇生成方法存根

清單1:使用未聲明的類型和成員,讓Visual Studio 2010自動為你生成類型和成員存根

  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自動生成的代碼

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

Navigate to(導航到...)

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

導航到窗口 
圖4: 導航到窗口

在這個例子中,我準備導航到IsPrime,點擊確定后就可看到其源代碼了,如清單3所示。

清單3:Primes類實現(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 IntegerAs 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 

集合初始化

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

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

你也可以這樣寫:

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

你也可以使用集合初始化語法初始化一個復合對象的集合。

自動執(zhí)行屬性

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

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

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

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

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

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

定義多行Lambda表達式

本來在VB中每個Lambda表達式都有一個Function,每個方法都有一個簡寫,在VB中的問題是Lambda必須返回點什么,但有時你可能并不希望返回值,使用.Net 4.0和VB時,你可以定義Function Lambda和Sub Lambda表達式,第一個例子顯示了一個Function Lambda,第二個顯示了一個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年開始編程,那時的編碼速度很慢,很費力并且很乏味,而且那個時候的程序都比較簡單,現(xiàn)在我們編寫的應(yīng)用程序少則數(shù)十萬行代碼,多則上百萬行代碼,VB中的新特性,如自動執(zhí)行屬性和Lambda表達式,大大提高了開發(fā)人員的生產(chǎn)力,在元編程工具中結(jié)合這些功能可以讓你在代碼世界中自由游弋。

我喜歡這些創(chuàng)新,對我來說,這些創(chuàng)新就等于生產(chǎn)力。

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

作者:Paul Kimmel

【編輯推薦】

  1. 淺談VB.NET中的跨進程消息鉤子
  2. VB.NET中的動態(tài)代碼生成技巧
  3. C#和VB.NET類型相關(guān)知識匯總向
  4. VB.NET中有用的通用對象列表
  5. VB.NET和C#逐層橫向?qū)Ρ?

 

責任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2010-03-26 14:37:57

Visual Stud

2010-08-02 14:23:56

FlexBuilder

2010-08-05 15:33:01

FlexBuilder

2013-10-28 14:15:12

2013-06-27 09:35:26

Windows 8.1預覽版特性

2010-05-13 08:57:22

jQuery 1.4

2011-05-30 09:07:44

MangoWindows Pho

2013-06-27 13:01:58

Windows 8.1

2010-01-20 10:02:52

SQL Server2

2011-10-10 13:24:49

2013-10-18 10:18:52

Windows 8.1微軟

2010-09-28 09:11:39

2010-06-24 15:03:37

MSN微軟

2009-02-04 10:49:08

IT求職揭秘技能

2015-09-16 09:45:00

2011-01-07 10:00:00

網(wǎng)絡(luò)事件

2011-07-05 09:05:40

新特性iOS 5.0

2009-10-16 09:03:36

Visual Stud

2013-06-20 10:10:05

Win Sever 2 Hyper-V

2010-12-27 09:39:03

云計算
點贊
收藏

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