VB.NET可選參數(shù)的默認(rèn)值必須是一個(gè)常數(shù)表達(dá)式。

目前累計(jì)服務(wù)客戶上1000家,積累了豐富的產(chǎn)品開(kāi)發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹(shù)立企業(yè)形象,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)公司始終以務(wù)實(shí)、誠(chéng)信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過(guò)對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺(jué)傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
過(guò)程定義中跟在可選參數(shù)后的每個(gè)參數(shù)也都必須是可選的。
下面的語(yǔ)法顯示帶VB.NET可選參數(shù)的過(guò)程聲明:
Sub sub name(ByVal parameter 1 As data type 1,
Optional ByVal parameter 2 As data type 2 = default value)
調(diào)用帶VB.NET可選參數(shù)的過(guò)程
過(guò)程在運(yùn)行時(shí)無(wú)法檢測(cè)到給定的參數(shù)是否已被省略,或者調(diào)用代碼是否已顯式提供默認(rèn)值。如果需要弄清楚這一點(diǎn),可以設(shè)置一個(gè)不可能的值作為默認(rèn)值。下面的過(guò)程定義了可選參數(shù) office,并測(cè)試其默認(rèn)值 QJZ 以查看它在調(diào)用中是否已被省略:
Visual Basic
Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
If office = "QJZ" Then
Debug.WriteLine("office not supplied -- using Headquarters")
office = "Headquarters" End If
' Insert code to notify headquarters or specified office.
End Sub
如果可選參數(shù)是像 String 這樣的引用類型,只要它不是該變量所預(yù)期的值,就可以使用 Nothing 作為默認(rèn)值。
VB.NET可選參數(shù)和重載
定義帶可選參數(shù)的過(guò)程的另一種方法是使用重載。如果有一個(gè)可選參數(shù),可以定義過(guò)程的兩個(gè)重載版本,一個(gè)接受此參數(shù),另一個(gè)則不帶參數(shù)。此方法隨可選參數(shù)數(shù)目的增加而變得更復(fù)雜。然而,這樣做的優(yōu)點(diǎn)是可以完全確定調(diào)用程序是否提供了每個(gè)VB.NET可選參數(shù)。
new 就是實(shí)例化,比如實(shí)例化一個(gè)類,你才能訪問(wèn),,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個(gè)過(guò)程就可以稱為實(shí)例化。
使用New關(guān)鍵字建立一個(gè)新的對(duì)象和用它屬的類來(lái)定義是一樣的。New關(guān)鍵字可以被用作來(lái)建立一個(gè)窗體、類模塊以及集合的實(shí)例。用戶在設(shè)計(jì)的時(shí)候建立的每一個(gè)窗體都是一個(gè)類。New關(guān)鍵字能夠用來(lái)建立一個(gè)類的實(shí)例。
可以通過(guò)以下步驟來(lái)建立一個(gè)類的實(shí)例:
(1)在窗體上畫(huà)一個(gè)按鈕和幾個(gè)其他的控件。
(2)按鈕的Click事件過(guò)程加入以下代碼:
Dim x AS New Form1
x.Show
(3)運(yùn)行程序,并且點(diǎn)擊幾次按鈕,把最前面的窗體移開(kāi),因?yàn)榇绑w是一個(gè)有可視界面的類,此時(shí)可以看見(jiàn)有很多窗體的拷貝,每一個(gè)窗體具有相同的控件,并且出現(xiàn)在一個(gè)地方。
(4)將列代碼加到按鈕的click事件過(guò)程中:
Dim f As Form1
f=New Form1
f.text="hello"
f.Show
使用New關(guān)鍵字可以從類模塊中定義的類中建立一個(gè)新的集合和對(duì)象,要知道它們?cè)鯓庸ぷ鳎梢詤⒖枷旅娴睦樱?/p>
(1)建立一個(gè)新的工程,并且在一個(gè)名為Form1的窗體上畫(huà)一個(gè)按鈕控件。
(2)在Project(項(xiàng)目)菜單下,選擇"Add Class"給工程添加一個(gè)類
(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事件的過(guò)程中加入如下代碼:Protected Sub Button1_Click(Byval sender As System.Object,_ Byval AS System.EventArgs) Dim clsNew As New ShowMe() clsNew.ShowFrm()End Sub
運(yùn)行程序,并且點(diǎn)擊幾次按鈕,將看見(jiàn)每創(chuàng)建一個(gè)ShowMe類的新的實(shí)例時(shí),在桌面上有一個(gè)最小化的窗體的圖標(biāo)。
New關(guān)鍵字只能用來(lái)建立一個(gè)類的對(duì)象,不能建立一個(gè)基于基本的數(shù)據(jù)類型的對(duì)象,例如Integer。而且,不能建立一個(gè)基于一個(gè)具體對(duì)象的對(duì)象。例如,下面的代碼根據(jù)一個(gè)名為SomeClass的類,建立了一個(gè)名為Objx的對(duì)象,面后又錯(cuò)誤地企圖根據(jù)對(duì)象Objx再建立一個(gè)其他的對(duì)象:
Dim Objx As New SomeClass()
Dim Objx AS New Objx()
以上代碼是非法的。
呵呵##~
1. 什么是類和對(duì)象?
答:類包含某一類對(duì)象的數(shù)據(jù)和過(guò)程。對(duì)象是類的實(shí)例。
2. 為什么采用類和對(duì)象進(jìn)行程序設(shè)計(jì)?
答:以便按照對(duì)象定義類,提高程序代碼的可重用性,避免重復(fù)勞動(dòng)。
3. 在同一個(gè)類中,應(yīng)當(dāng)包括哪些對(duì)象的屬性和方法?
答:同一類對(duì)象的數(shù)據(jù)和過(guò)程。
4. VB程序設(shè)計(jì)主要包括哪兩個(gè)方面的內(nèi)容?
答:Windows應(yīng)用程序界面和代碼。
5. 什么是事件驅(qū)動(dòng)?
答:根據(jù)事件轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理過(guò)程。
1. 控件是窗體上的 對(duì)象 。
2. Visual Basic具有 BASIC程序語(yǔ)言簡(jiǎn)單易學(xué)的 優(yōu)點(diǎn),新增了 可視化和面向面向?qū)ο蟪绦蛟O(shè)計(jì)的 熱點(diǎn),是 Windows編程人員廣泛使用的編程 工具。
3. 對(duì)象的 屬性 是在其類中定義的數(shù)據(jù)。
4. 對(duì)象的 方法 是在其類中定義的過(guò)程。
5. 對(duì)象本身的動(dòng)作或功能稱為 方法 ,外界施加于某對(duì)象的動(dòng)作或操作稱為 事件 。
1.面向過(guò)程
是指從功能的角度分析問(wèn)題,將待解決的問(wèn)題空間分解成若干個(gè)功能模塊,每個(gè)功能模塊描述一個(gè)操作的具體過(guò)程。
2.面向過(guò)程程序設(shè)計(jì)
主要是根據(jù)事務(wù)本身的邏輯過(guò)程進(jìn)行編程的一種方法。
3.面向?qū)ο蟪绦蛟O(shè)計(jì)
是一種計(jì)算機(jī)編程架構(gòu),是由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。即按照對(duì)象編寫(xiě)程序。
4.事件驅(qū)動(dòng)程序設(shè)計(jì)
是一種電腦程式設(shè)計(jì)模型。這種模型的程式執(zhí)行流程是由使用者的動(dòng)作或者是由其他程式的訊息來(lái)決定的。
5.函數(shù)
是一種特定的運(yùn)算,在程序中使用一個(gè)函數(shù)時(shí),只要給出函數(shù)名并給出一個(gè)或多個(gè)參數(shù),就能得到它的函數(shù)值
6.過(guò)程
是程序中可以執(zhí)行的一段代碼,過(guò)程包含在一個(gè)聲明語(yǔ)句和一個(gè)結(jié)束語(yǔ)句之間
7.類
是所有具有共同特征的事物的抽象,是一個(gè)抽象的概念(類是一組具有相同屬性特征的對(duì)象的抽象描述,是面向?qū)ο蟪绦蛟O(shè)計(jì)的又一個(gè)核心概念或者類是對(duì)一組對(duì)象共同具有的屬性和行為的抽象,具有封裝和隱藏性、還具有繼承性)。
8.對(duì)象
是一個(gè)屬性集合及其操作的封裝體(對(duì)象是用來(lái)描述現(xiàn)實(shí)世界中客體的部件,是面向?qū)ο筌浖到y(tǒng)在運(yùn)行時(shí)刻的基本單位)。
類是對(duì)象的抽象,對(duì)象是類的實(shí)例。
9.事件
窗體或控件識(shí)別的動(dòng)作
10.事件驅(qū)動(dòng)
根據(jù)事件轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理過(guò)程。
11.屬性
是一個(gè)對(duì)象的特性,不同的對(duì)象有不同的屬性
12.算法
指解決某個(gè)問(wèn)題的嚴(yán)格方法,描述有始有終的計(jì)算過(guò)程。
5.屬性窗口中屬性值被設(shè)置的方式有哪幾種?
6種:輸入 選取 瀏覽 賦值 默認(rèn) 拖動(dòng)
1.程序代碼是由一行一行的 語(yǔ)句 所組成。
3.在程序代碼中可將一個(gè)語(yǔ)句分成兩段的特殊符號(hào)為( _ )。
5.數(shù)值變量如果沒(méi)有設(shè)置初值,則內(nèi)定值為 0 。
7.如果有一個(gè)變量,可能會(huì)存放數(shù)值數(shù)據(jù)或字符串?dāng)?shù)據(jù),此時(shí)可以聲明該變量為 對(duì)象變量。
9. Integer數(shù)據(jù)類型占 4 bytes的內(nèi)存空間,可以表示的數(shù)值范圍為 -2,147,483,648~2,147,483,647 的整數(shù)
3.VB.NET程序語(yǔ)言數(shù)據(jù)類型的種類有哪些?
(1)數(shù)值型
①整形數(shù):短整形(Short)、整形(Integer)、長(zhǎng)整型(Long)
②字節(jié)型(Byte)
③實(shí)型數(shù):?jiǎn)尉刃停⊿ingle)、雙精度型(Double)
④貨幣型(Decimal)
(2)字符型(Char)和字符串型(String)
(3)邏輯型/布爾型(Boolean)
(4)日期型(Date)
(5)對(duì)象型(Object)[即可變型(Variant)]
1.局部變量、全局變量、跨模塊變量分別在何處聲明?其生存期分別是多少?
局部變量在程序內(nèi)聲明。生存期為從所在的程序運(yùn)行開(kāi)始到程序結(jié)束。
全局變量在窗體內(nèi)所有程序的外邊聲明。生存期為由該變量聲明開(kāi)始,一直到程序退出運(yùn)行為止。
跨模塊變量在一般模塊的聲明區(qū)用Public來(lái)聲明。生存期為從一個(gè)Windows應(yīng)用程序項(xiàng)目文件開(kāi)始運(yùn)行到結(jié)束。
3.什么是靜態(tài)變量?
靜態(tài)變量是在離開(kāi)程序時(shí)能夠繼續(xù)保留目前的值,待下回進(jìn)入該程序時(shí)能夠繼續(xù)保留的變量值的局部變量,用Static關(guān)鍵字聲明。
(一)問(wèn)答題
1.請(qǐng)簡(jiǎn)單說(shuō)明在程序中使用程序的好處。
(1)程序可以重復(fù)使用,以方便維護(hù)與程序調(diào)試。
(2)程序可以讓其他工程或項(xiàng)目使用。
(3)程序的邏輯簡(jiǎn)單、明確,可以讓程序變得簡(jiǎn)單且可讀性高。
(4)程序具有模塊化的功能,因此可以將一個(gè)大的應(yīng)用程序分成數(shù)個(gè)小的且不同功能的程序,讓不同的程序設(shè)計(jì)師分別編寫(xiě)?yīng)毩⒉煌δ艿某绦颍⒁詧F(tuán)隊(duì)開(kāi)發(fā),加快應(yīng)用程序開(kāi)發(fā)的時(shí)間。
3.試比較傳值調(diào)用與傳址調(diào)用的差異。
(1)聲明方式不同:
傳值——在程序中的虛自變量之前加上ByVal
傳址——在程序中的虛自變量之前加上ByRef
(2)占用內(nèi)存不同
傳值——調(diào)用程序的實(shí)自變量與被調(diào)用程序的虛自變量占用不同內(nèi)存
傳址——調(diào)用程序的實(shí)自變量與被調(diào)用程序的虛自變量占用同一地址的內(nèi)存,也就是說(shuō),在做參數(shù)傳遞時(shí),調(diào)用程序中的實(shí)自變量是將自己本身的內(nèi)存地址傳給被調(diào)用程序的虛自變量
(3)虛自變量更改結(jié)果不同
傳值——使用傳值調(diào)用可以防止變量被程序修改
傳址——被調(diào)用程序可以通過(guò)虛自變量將值傳回給調(diào)用程序
5.什么是程序多載?
程序多載是使用不同的自變量串行或數(shù)據(jù)類型來(lái)加以區(qū)分相同名稱的程序。
Imports?System.Data.OleDb??
Public?Class?Form1??
Dim?cn?As?OleDbConnection??
Dim?da?As?OleDbDataAdapter??
Dim?ds?As?DataSet??
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load??
Dim?cnStr?As?String?=?"Provider=Microsoft.Jet.OLEDB.4.0;Data?Source=D:\persons.mdb;Persist?Security?Info=False"??
cn?=?New?OleDbConnection(cnStr)??
Dim?sql?As?String?=?"select?*?from?grade"??
da?=?New?OleDbDataAdapter(sql,?cn)??
ds?=?New?DataSet??
da.Fill(ds,?"grade")??
DataGridView1.DataSource?=?ds.Tables(0)??
End?Sub??
End?Class
解釋:
?Dim cnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\persons.mdb;Persist Security Info=False" ?
這段是創(chuàng)建鏈接字符串,你可以根據(jù)自己數(shù)據(jù)庫(kù)實(shí)際存放位置進(jìn)行修改
Dim sql As String = "select * from grade"
這是數(shù)據(jù)庫(kù)查詢語(yǔ)句,你可以根據(jù)實(shí)際情況修改下
Dim?sql?As?String?=?"select?*?from?grade"??
da?=?New?OleDbDataAdapter(sql,?cn)??
ds?=?New?DataSet??
da.Fill(ds,?"grade")??
DataGridView1.DataSource?=?ds.Tables(0)
這是執(zhí)行查詢語(yǔ)句后,將查詢的結(jié)果存入datagridview中
分享文章:包含vbnet使用方法的詞條
網(wǎng)站網(wǎng)址:http://chinadenli.net/article20/dsgpcco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、做網(wǎng)站、微信小程序、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容