總體來說,操作上區別不大,
江永網站建設公司創新互聯,江永網站設計制作,有大型網站制作公司豐富經驗。已為江永近千家提供企業網站建設服務。企業網站搭建\外貿營銷網站建設要多少錢,請找那個售后服務好的江永做網站的公司定做!
都是在一個空白的窗體上面畫控件,
基本控件總體變化不大,
而且預設的控件量很多,
基本上不用再倒入其他什么玩藝兒了……
(.NET 里是沒有 ActiveX 控件這么一說的,大家平起平坐)
可是代碼的變化很大,關鍵字啊變化都挺大的……
比如,在控件方面,控件的文本屬性都是 Text,而沒有 Caption 這么一說
不過 Value 屬性依然保留。
Form 的 Show 方法被拆成了 Show 和 ShowDialog,顧名思義。
Unload 方法被 Form 的 Close 方法代替。
在對控件的事件處理方面,VB 6.0 使用方法的名稱來定義事件處理程序,
而在 .NET 中使用 Handles 語句來定義,
并且可以用 AddHandler 來在運行時定義事件處理程序。
在關鍵字方面,
VB.NET 使用 Class、Module 關鍵字來標記一個模塊,
就像 Sub、Function 一樣,
而不是以文件區分,
即一個文件里能放多個模塊。
而且 VB.NET 能夠提供完備的 OOP 支持,
較 VB6.0 相比,
可以使用 Inherit 關鍵字來實現類的繼承,
因此“基類”、“派生”、“重寫”不再是 C 的專利。
于是又出現了 MyBase 關鍵字用于表示當前實例(Me)的基類,
在 .NET 里,和“我”有關的關鍵字包括:Me、My、MyBase、MyClass。
隨之而來的是與可繼承性有關的 Overridable、MustInherit、MustOverride、NotInheritable、NotOverridable、Protected,
與繼承相關的 Inherit、Override 關鍵字。
另外,VB.NET 支持成員重載,即使用相同的名稱與不同的參數來區分不同的成員。
而且,在 .NET 框架中,
有一個用來將不同的模塊分開的容器,命名空間(Namespace 關鍵字),使模塊井井有條,減少了命名沖突的發生。
比如內置的各種控件都定義在System.Windows.Forms 命名空間里。
在數據類型方面,
在 .NET 框架中,所有的類型(包括繼承自 ValueType 的 String、Integer、作為各種枚舉的基類的Enum類型等)都繼承自 Object 類型,即 Object 取代了 Variant。
而 Object 有一個很方便的 ToString 函數,在 CStr 不管用的時候可以用這個。
而且,在 .NET 中,考慮到程序的性能,
不建議使用后期綁定,例如:
(VB 6.0)
Dim V1 As String, V2 As String
V2 = V1 * 50
在 .NET 中,
如果文件頭部有 Option Strict [On],
或是(建議)在工程設置里打開這一選項,
第二行就會報錯,
因為*不是適用于 String 的操作符,
而在 VB 6.0里會自動執行轉換,
如果是在 VB.NET,建議執行強制轉換:
(VB.NET)
Dim V1 As String, V2 As String
V2 = CStr(CInt(V1) * 50)
同理,
(VB 6.0)
Dim Obj As Object
Set Obj = TextBox1
Obj.Text = “Hello World!”
第三行就會報錯,
因為 Caption 不是 Object 的屬性,
而是 TextBox 的屬性,
解決方案是,使用早期綁定:
(VB.NET)
TextBox1.Text = “Hello World!”
如果需要,可以使用:
DirectCast(Obj, TextBox).Text = “Hello World!”
與此相關的新式轉換關鍵字包括 CType、DirectCast、TryCast、CObj
盡管看起來累贅些,
但可以避免過度的隨意性。
由此,許多在 VB 6.0里不是很明朗的東西變得豁然開朗,
比如我們設計的窗體其實繼承自 Form 類,
而 Form 類又繼承自 Object,因此我們可以使用:
(VB 6.0)
Dim FormInstance As Form
Set FormInstance = New Form1
而不會報錯。
說到這里,.
NET 不支持默認屬性,
即:
(VB 6.0)
Command1 = “Hello World!”
等價于:
Command1.Caption = “Hello World!”
而在 .NET 中沒有 Set 關鍵詞:
(VB.NET)
Dim Ctl As Control
Ctl = Command1
只能先說到這里了……
有點多,
總之是 .NET 很強大,
過渡不是沒有可能,
但要多看 MSDN。
vb.net的MSDN都在微軟的網站上,因為微軟每天都在更新MSDN的內容,當然也有離線版,不過容量太大(10多G),不建議安裝,如果要裝的話,請參考:
在VB.NET操作縮放圖像中的顯示和保存縮放圖像,用到Image和Graphics類,在VSDotNet2K3下面Reference里自動添加了引用System.Drawing,直接用就行。
實現VB.NET操作縮放圖像代碼如下:DimimgAsImageImage=Image.FromFile
(D:\Image\tstImage.jpg)
''tstImage是原先的圖片DimgrfxAsGraphics=Me
.CreateGraphics
grfx.DrawImage(img,0,0,img.Width*
3,img.Height*3)''在Form里顯示
DimimgnewAsNewSystem.Drawing.Bitmap
(img,img.Height*3,img.Width*3)
''新建一個放大的圖片
imgnew.Save(D:\Image\tstNewImage.jpg,
System.Drawing.Imaging.ImageFormat.Jpeg)
''保存放大后圖片
你可以建一個Form,然后在Form里拖進一個Button,把上面的代碼放在Button_Click事件里面源碼天空
,執行就行了。
對上面VB.NET操作縮放圖像代碼的解釋:
1.要獲取Graphics對象只能從某一事件的參數中獲取或者使用窗體和控件對象的CreateGraphics方法來獲取-----上面代碼使用Me.CreateGraphics來引用這個對象。
2.加載一個圖片用Image類的FromFile或者FromStream方法
3.用DrawImage來顯示一個圖片,該方法有30多個重載方法,可以查MSDN了解細節。
4.保存時的一個問題:我們必須先建一個對象,用于存縮放圖像。
msdn文檔在網頁上有,瀏覽器打開就可以看到了。如果想看某個類庫的介紹的話,直接在網址后面加上完整命名空間,比如就行了
我們都知道,面向對象語言的三大特征是:封裝、繼承和多態。而重寫和重載是多態的兩種表現形式。多態,顧名思義,就是指多種形態。而重寫和重載正好體現了這一點。現在我們以 VB.NET 語言來說明兩者的區別。
重寫是發生在父類與子類之間的關系。具體來講就是子類可以重寫父類的現有的方法。它要求子類的方法名稱及參數必須與父類完全一致。比如吃飯,父親可以吃兩碗面,孩子同樣也是吃面,卻只能吃一碗。
重載則主要是發生在同一個類當中的,它通過多個名稱相同的方法,但方法參數不相同,或者方法返回類型不相同來加以區別。其中,方法參數不相同包括以下幾種情況:參數的個數不相同,參數的類型不相同,參數的對應位置不相同。需要說明的是,重載同樣可以應用到父類與子類當中。即子類重載了父類的方法。
重寫:
在 VB.NET 中,重寫汲及到的關鍵字有:
OverRidable: 在父類中聲明的可以在子類中重寫的方法。
OverRides: 在子類中聲明的要重寫父親中可重寫的方法。
MustOverRide: 在父類中,表示這個方法必須在子類中重寫。此時,該類必須聲明為抽象類。
NotOverridable: 如果當前類還有子類,那么,在其子類中,該方法不允許被重寫。
重載:
在 VB.NET 中,重載用到的關鍵是 OverLoads。
這里需要說明幾點:
1. 對于在同一類當中,一組名稱相同的方法或函數重載時,可以加關鍵字 OverLoads 或者不加。但如果其中有一個方法加上,那同組其它方法也必須加該關鍵字。
2. 如果該方法是重載父類中的方法。那么必須加 OverLoads 關鍵字。
3. 如果兩個同名函數僅返回類型不相同,則它們不能重載,即必須在參數上有所不同。
網站名稱:vb.net重載msdn vb函數重載
URL分享:http://vcdvsql.cn/article38/doodgpp.html
成都網站建設公司_創新互聯,為您提供用戶體驗、品牌網站建設、企業建站、網站策劃、商城網站、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯