成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

描述VB.NET DirectCast運算符

開發 后端
這里介紹VB.NET DirectCast運算符,在Visual Basic 2005中將加入一個新的運算符——TryCast,相當于C#的as運算符。我一直希望VB有這樣一個運算符。VB目前的類型轉換運算符主要有 CType和DirectCast。

本人很喜歡VB.NET DirectCast運算符,在工作中也很喜歡總結關于VB.NET DirectCast運算符的經驗教訓,下面就這個問題來詳細說說吧。VB.NET 能夠實現很多C#不能做到的功能,如When語句、Optional參數、局部Static變量、對象實例訪問靜態方法、Handles綁定事件、On Error處理異常、Object直接后期綁定等等。VB和C#同屬.NET的語言,編譯出來的是同樣的CIL,但為什么VB支持很多有趣的特性呢。我們一起來探究一下VB.NET DirectCast運算符。

在Visual Basic 2005中將加入一個新的運算符——TryCast,相當于C#的as運算符。我一直希望VB有這樣一個運算符。VB目前的類型轉換運算符主要有 CType和DirectCast。他們的用法幾乎一樣。我詳細比較了一下這兩個運算符,得出以下結論:

1、在轉換成引用類型時,兩者沒有什么區別,都是直接調用castclass指令,除非重載了類型轉換運算符CType。VB.NET DirectCast運算符是不能重載的。

2、轉換成值類型時,CType會調用VB指定的類型轉換函數(如果有的話),比如將String轉換為Int32時,就會自動調用 VisualBasic.CompilerServices.IntegerType.FromString,而將Object轉換為Int32則會調用 FromObject。其他數值類型轉換為Int32時,CType也會調用類型本身的轉換方法實施轉換。VB.NET DirectCast運算符則很簡單,直接將對象拆箱成所需類型。

所以在用于值類型時,CType沒有DirectCast快速但可以支持更多的轉換。在C#中,類型轉換則為(type)運算符和as運算符。(type)運算符的工作方式與VB的DirectCast很相似,也是直接拆箱或castclass的,但是如果遇到支持的類型轉換(如long到 int),(type)運算符也會調用相應的轉換方法,但不支持從String到int的轉換。C#另一個運算符as則更加智能,它只要判斷對象的運行實例能否轉成目標類型,然后就可以省略castclass指令,直接按已知類型進行操作,而且編譯器還可以自動對as進行優化,比如節省一個對象引用等。所以在將Object轉換成所需的類型時,as是最佳選擇。

由于as有很多優點,Visual Basic 2005將這一特性吸收了過來,用TryCast運算符就可以獲得和as一樣的效果,而且語法與VB.NET DirectCast運算符或CType一樣。

【編輯推薦】

  1. 詳細分析VB.NET WithEvents
  2. 淺析VB.NET局部靜態變量
  3. 原理分析VB.NET開發控件
  4. 自己動手用代碼實現VB.NET ListView加載數據
  5. 詳細介紹VB.NET MyClass
責任編輯:佚名 來源: 51cto.com
相關推薦

2010-01-07 14:52:41

VB.NET運算符

2010-01-14 13:08:37

VB.NET運算符

2010-01-21 17:39:26

VB.NET運算符過程

2010-01-19 15:30:44

VB.NET比較運算符

2010-01-20 14:32:12

VB.NET轉換運算符

2010-01-20 14:06:36

VB.NET運算符組合

2010-01-22 17:48:46

VB.NET運算符重載

2009-10-20 14:21:55

VB.NET fnSi

2010-01-18 14:08:29

VB.NET類型轉換

2009-10-23 10:18:43

VB.NET運算符

2009-10-20 14:09:05

VB.NET反射功能

2009-10-27 12:06:01

VB.NET IDis

2009-10-19 14:22:13

VB.NET EIF體

2009-10-13 09:33:49

VB.NET Web

2009-10-30 11:20:54

VB.NET Proc

2009-10-15 09:02:19

VB.NET申明數組

2009-10-14 13:56:05

VB.NET數據窗體

2009-10-12 12:54:58

VB.NET聲明API

2009-10-13 17:16:40

VB.NET Web服

2009-10-14 09:15:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产不卡在线观看 | 欧美在线a | 香蕉久久a毛片 | 国产精品久久久久久久久久久免费看 | 二区视频 | 久久99视频免费观看 | av黄在线观看| 中文字幕中文字幕 | 欧美精品欧美精品系列 | 国产99视频精品免费视频7 | 精品久久久久久久久久久 | 精品毛片在线观看 | 中文字幕乱码一区二区三区 | 国产精品亚洲视频 | 久久一区 | 性做久久久久久免费观看欧美 | 一区二区三区亚洲精品国 | 日本aⅴ中文字幕 | 久久精品无码一区二区三区 | 一区网站 | 成人网址在线观看 | 欧美一区二区三区在线视频 | 凹凸日日摸日日碰夜夜 | 综合婷婷| 久久久久久久久国产精品 | 久久69精品久久久久久久电影好 | 国产精品色婷婷久久58 | 二区亚洲 | 特级生活片 | 日本三级播放 | 91精品国产777在线观看 | 久久久久久久久久久蜜桃 | 天天干夜夜操视频 | 99久久婷婷国产综合精品电影 | 亚洲一区视频在线 | 91精品久久久久久久久久 | www.v888av.com| 欧美日韩精品一区二区三区四区 | 国产激情 | 91天堂网| 成人在线观看中文字幕 |