十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
.net里面所有的內(nèi)容都是類了,包括窗體也是類
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比洪雅網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式洪雅網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋洪雅地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
Dim frmNew As Form1 即聲明frmNew的類型是名為From1的類
frmNew = New Form1 為frmNew賦值,其值為Form1類的一個新的實例。也就是創(chuàng)建了一個窗體,這個窗體是你設(shè)計的from1的一個實例
new
就是實例化,比如實例化一個類,你才能訪問,,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個過程就可以稱為實例化。
使用New關(guān)鍵字建立一個新的對象和用它屬的類來定義是一樣的。New關(guān)鍵字可以被用作來建立一個窗體、類模塊以及集合的實例。用戶在設(shè)計的時候建立的每一個窗體都是一個類。New關(guān)鍵字能夠用來建立一個類的實例。
可以通過以下步驟來建立一個類的實例:
(1)在窗體上畫一個按鈕和幾個其他的控件。
(2)按鈕的Click事件過程加入以下代碼:
Dim
x
AS
New
Form1
x.Show
(3)運行程序,并且點擊幾次按鈕,把最前面的窗體移開,因為窗體是一個有可視界面的類,此時可以看見有很多窗體的拷貝,每一個窗體具有相同的控件,并且出現(xiàn)在一個地方。
(4)將列代碼加到按鈕的click事件過程中:
Dim
f
As
Form1
f=New
Form1
f.text="hello"
f.Show
使用New關(guān)鍵字可以從類模塊中定義的類中建立一個新的集合和對象,要知道它們怎樣工作,可以參考下面的例子:
(1)建立一個新的工程,并且在一個名為Form1的窗體上畫一個按鈕控件。
(2)在Project(項目)菜單下,選擇"Add
Class"給工程添加一個類
(3)把新的類命名為ShowMe.VB
(4)在該新類中加入如下代碼:
PUblic
Class
ShowMe
Sub
ShowFrm()
Dim
frmNew
As
Form1
frmNew=New
Form1
frmNew.Show()
frmNew.WindowState=1
End
Sub
End
Class
(5)在Button1_click事件的過程中加入如下代碼:Protected
Sub
Button1_Click(Byval
sender
As
System.Object,_
Byval
AS
System.EventArgs)
Dim
clsNew
As
New
ShowMe()
clsNew.ShowFrm()End
Sub
運行程序,并且點擊幾次按鈕,將看見每創(chuàng)建一個ShowMe類的新的實例時,在桌面上有一個最小化的窗體的圖標(biāo)。
New關(guān)鍵字只能用來建立一個類的對象,不能建立一個基于基本的數(shù)據(jù)類型的對象,例如Integer。而且,不能建立一個基于一個具體對象的對象。例如,下面的代碼根據(jù)一個名為SomeClass的類,建立了一個名為Objx的對象,面后又錯誤地企圖根據(jù)對象Objx再建立一個其他的對象:
Dim
Objx
As
New
SomeClass()
Dim
Objx
AS
New
Objx()
以上代碼是非法的。
呵呵##~
顧名思義,new就是給變量賦值一個新的對象
dim不加new就是說變量是XX類型的,但它不是一個真正的XX對象。如果給這個變量賦值的話,實際上就是把某一對象的指針存到變量里,它依舊不是一個對象
一個普通的類,里面有一些數(shù)據(jù),你要弄一個對象的話,需要初始化所有類中的數(shù)據(jù)并調(diào)用構(gòu)造函數(shù)。這時候我們就用new了。如果你不用new,然后直接使用的話,會引發(fā)null異常
當(dāng)然上面的討論不包括Integer、String、Long這樣的數(shù)值類型,這些不能用new
是這樣的,VB.NET用的是.NET FRAMEWORK的類庫,所以,在實例化一個對象的時候,要用NEW,因為框架底層都是類。實例化之后,才能使用。你把一個form窗體new了,分配了空間到托管堆上,然后才能show方法把窗體展示出來 沒有new的,有兩種,一個是靜態(tài)類,一個是元數(shù)據(jù)類型。
Private Sql_Connect As New SqlClient.SqlConnection
直接實例化了
Private Sql_Connect As SqlClient.SqlConnection
沒有實例化
需要在后面的代碼中
set Sql_Connect = New SqlClient.SqlConnection
以進行實例化
實例化以后對象即有了意義
也會觸發(fā)Class_Initialize事件
=====================================================
那好吧
dim a as Object
Set a= New SqlClient.SqlConnection
這樣寫其實也是可以的
但是這樣在編程的時候不會顯示SqlClient.SqlConnection的屬性和方法列表
dim a as SqlClient.SqlConnection
只這樣寫的話在編程的時候會顯示SqlClient.SqlConnection的屬性和方法列表,但是在程序運行的時候并不會給這個對象分配內(nèi)存空間和地址
Set a= New SqlClient.SqlConnection
在這句語句出現(xiàn)后程序才會給這個對象分配內(nèi)存空間
dim a as new SqlClient.SqlConnection
則把以上兩個功能簡化處理,一步到位了,這樣可能會分配不必要的內(nèi)存空間給這個對象的
實例化一個對象使用New,實例化就是調(diào)用一次構(gòu)造函數(shù) 比如:
Dim A As New TR(“dsdsd”) ‘若該TR對象的構(gòu)造函數(shù)有參數(shù)ByVal s As String
A.fun() '使用一些公開方法,屬性
如果僅僅是這樣:
Dim A As TR
將不會執(zhí)行構(gòu)造函數(shù),你將不能使用一些公開方法,屬性
A.fun() ’錯誤
'--------------------
百度VB2010(VB.NET)吧建設(shè)發(fā)展中,需要你的支持和幫助!!!
快加入我們吧!發(fā)表你的疑問,經(jīng)驗,程序,分享..
讓我們共同進步!