扒开腿挺进岳湿润的花苞视频|将军边走边挺进她H树林|挺进朋友人妻张婉莹身体|岳脱得精光让我挺进去视频|第一次挺进莹莹的身体里视频|脱岳裙子从后面挺进去视频

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> .Net技術(shù) >> 文章正文

VB.NET語法基礎(chǔ)知識學(xué)習(xí)

       很久以來,VB因?yàn)槿狈ν晟频拿嫦驅(qū)ο笾С帧⑷狈Ω咝У腻e(cuò)誤處理機(jī)制和性能表現(xiàn)不佳,因而一直受到某些人的嘲笑。VB.NET將徹底改變這種情況。然而,VB.NET在這些方面的改進(jìn)也要付出代價(jià),許多舊的代碼需要手工進(jìn)行轉(zhuǎn)換才能在VB.NET下運(yùn)行。    
    下面幾個(gè)表格總結(jié)了VB.NET語言在語法上的改動(dòng)之處。注意這些表格并沒有完全列出所有改動(dòng)之處,但列出了最重要的一些改動(dòng)。   
      表A對比了VB6中一些熟悉的語法形式及其在VB.NET中類似功能最接近的語法形式。 
  表A:語法對比
  舊語法 新語法 說明
  窗體裝載事件,類初始化事件 Sub New procedure Sub New稱為構(gòu)造方法(Constructor),它可以有參數(shù)。
  Property Let Property Set Let關(guān)鍵詞不再有效。
  Currency Decimal 在VB6中,Decimal是Variant的一種子類型,但在.NET中它是一種固有的數(shù)據(jù)類型。.NET不再支持Currency數(shù)據(jù)類型。
  Variant Object VB.NET的Object數(shù)據(jù)類型兼有VB6 Object類型和Variant類型的能力。
  Debug.Print Debug.Write Debug.WriteLine 這個(gè)變化只是名稱上的簡單變化:從Print變?yōu)閃rite和WriteLine。
  Wend End While VB.NET推薦使用While循環(huán)而不是Do循環(huán)。 
    為了讓VB的數(shù)據(jù)類型和其他.NET語言的數(shù)據(jù)類型相匹配,Microsoft修改了整數(shù)類數(shù)據(jù)類型的表示方法,并加入了一個(gè)新的數(shù)據(jù)類型。這些改動(dòng)對于進(jìn)行外部調(diào)用的方法尤其重要(比如API調(diào)用)。例如,如果被調(diào)用函數(shù)需要一個(gè)32位的整數(shù)參數(shù),則在VB6中它應(yīng)該聲明為Long,在VB.NET中應(yīng)該聲明為Integer。 
  表B:和整數(shù)有關(guān)的數(shù)據(jù)類型
  長度 VB6以及更早版本中的名稱 VB.NET中的名稱
  16 bit Integer Short
  32 bit Long Integer
  64 bit (無) Long 
    在VB.NET中,Microsoft減少了許多原先用于VB6的關(guān)鍵詞,代之以“框架類”。之所以要進(jìn)行這種替換,是因?yàn)榭蚣茴愔械墓δ軐λ械?NET語言都有效。下表列出了部分受影響的關(guān)鍵詞。 
  表C:被替換的關(guān)鍵詞
  VB關(guān)鍵詞 VB.NET名稱空間中的位置 方法/屬性
  Circle System.Drawing.Graphics DrawEllipse
  Line System.Drawing.Graphics DrawLine
  Atn System.Math Atan
  Sgn System.Math Sign
  Sqr System.Math Sqrt
  Rnd Microsoft.VisualBasic.Compatibility.VB6 Rnd
  Round Microsoft.VisualBasic.Compatibility.VB6 Round
  Lset System.String PadRight
  Rset System.String PadLeft
  DoEvents System.Winforms.Application DoEvents
  VarType System.Object GetType(返回類Type的對象,其中包含了可提取出信息的屬性) 
  
    在VB.NET中,變量、數(shù)組的聲明和初始化方法都有所變化,下表概要地列出了VB.NET在這方面的變化。
  
  表D:新的聲明方法
  變化 語法舉例
  單個(gè)聲明語句中不能聲明多種類型。 'VB.NET不允許出現(xiàn)下面這種聲明!
  Dim nCount As Integer, bAnswer As Boolean
  聲明變量時(shí)可賦予初始值 Dim nCount As Integer = 20
  Dim nDoubleCount as Integer = nCount * 2
  允許為數(shù)組元素指定初始值 Dim nIndex(3) As Integer = (3, 5, 7)
  不能用Redim進(jìn)行聲明,只能用Redim重新定義數(shù)組大小。 '下面這行代碼在VB.NET中不合法!
  Redim sName() As String
    大量新關(guān)鍵詞實(shí)現(xiàn)了VB.NET中的新功能。下面是一些最重要的關(guān)鍵詞及其用途、用法簡例。
  
  表E:VB.NET的新關(guān)鍵詞
  關(guān)鍵詞 用途 簡單例子
  Inherits 指向基類,用于實(shí)現(xiàn)繼承。 Inherits System.WinForms.Form
  MyBase 在子類的代碼中,MyBase引用基類。 StringProperty = MyBase.StringProperty
  Shared Shared表示類的所有實(shí)例共享類里面的變量。 Public Shared BaseLocation As String
  Try
  Catch
  Finally
  Throw 這是新的錯(cuò)誤處理關(guān)鍵詞。Try開始一個(gè)啟用錯(cuò)誤控制的代碼塊,Catch標(biāo)識一個(gè)對特定錯(cuò)誤進(jìn)行處理的代碼塊,F(xiàn)inally開始一個(gè)不管錯(cuò)誤是否出現(xiàn)都必須執(zhí)行的代碼塊,Throw拋出一個(gè)錯(cuò)誤(類似于VB6的Err.Raise)。 Try
  rsRecordset.Update
  Catch
  LogError ("更新失!")
  Finally
  rsRecordset.MoveNext
  End Try
  ReadOnly 在屬性聲明中,ReadOnly指示一個(gè)只讀的屬性(只有Get過程的屬性)。 Public ReadOnly Property
  StringProperty() As String
  WriteOnly 在屬性聲明中,WriteOnly指示一個(gè)只能寫入的屬性(只有Set過程的屬性)。 Public WriteOnly Property
  StringProperty() As String
  Char 這是VB.NET中的單字符數(shù)據(jù)類型。 Dim chrInitial As Char
  Imports 在當(dāng)前代碼模塊中引入指定類。 Imports System.WinForms
  Namespace 為模塊指定名稱空間(Namespace)。 Namespace MyApplicationName
  Overloads 重載。Overloads表示同一個(gè)函數(shù)名字有多個(gè)版本的實(shí)現(xiàn),編譯器通過函數(shù)的參數(shù)列表區(qū)分它們。 '同一個(gè)模塊之內(nèi)包含如下多個(gè)聲明...
  Overloads Sub Display(sIn as String)
  Overloads Sub Display(nIn as Long)
  Overrides 覆蓋。Overrides表示成員函數(shù)覆蓋當(dāng)前類所繼承的基類中的指定方法。 Inherits MyBaseClass
  Overrides Function Name(nID as Long) _
  As String
  Overridable Overridable表示任意從當(dāng)前類繼承的類都可以覆蓋指定成員函數(shù)。 Overridable Function Name _
  (nID as Long) As String
  MustOverride MustOverride表示任意從當(dāng)前類繼承的類都必須覆蓋指定成員函數(shù)。 MustOverride Function Name _
  (nID as Long) As String
  Protected Protected表示成員函數(shù)只能從當(dāng)前類的派生類訪問。 Protected Sub Clear()
  
  
    在以前的VB中,直至VB 4為止, Let、Set和Get屬性過程是分離的。VB.NET把同一屬性的屬性過程放到了一起: 
  Private msMyStringProperty As String
  ' 聲明區(qū)
  Public Property MyStringProperty As String
  Get
  MyStringProperty = msMyStringProperty
  End Get 
  Set
  msMyStringProperty = MyStringProperty
  End Set
  End Property   
    VB.NET不再有Let屬性過程,因?yàn)樗匈x值語句的語法(無論是對象還是非對象)都已經(jīng)一樣。
  
    語言方面的改動(dòng)遠(yuǎn)遠(yuǎn)超過了對體系結(jié)構(gòu)的改動(dòng)。對于大多數(shù)人來說這些改動(dòng)都有意義,但仍有人對某些改動(dòng)存有異議。例如,在以前的版本中,許多任務(wù)可以用多種不同的方法完成,統(tǒng)一的編碼標(biāo)準(zhǔn)要么不存在,要么很難執(zhí)行。為了“清理”VB語言,Microsoft對VB作了一些重大的改動(dòng),許多以前可以有多種實(shí)現(xiàn)方法的任務(wù)現(xiàn)在只有一種方法。
  
    除了前面幾個(gè)表格列出的內(nèi)容之外,下面是一些特別需要注意的地方。
  
    首先,向過程參數(shù)傳遞數(shù)據(jù)的默認(rèn)方式由原來的傳遞引用(ByRef)變成了傳遞值(ByVal),這是一個(gè)很重要的改動(dòng)。通過引用傳遞參數(shù)比通過值傳遞參數(shù)面臨著更多的危險(xiǎn),這種危險(xiǎn)在于被調(diào)用過程可能無意地改變參數(shù)的值。VB.NET仍舊允許以引用方式傳遞參數(shù),但默認(rèn)參數(shù)傳遞方式的改變意味著程序必須作相應(yīng)的調(diào)整。
  
    第二,VB.NET中不再有Set語句,把對象引用賦給變量現(xiàn)在只需一個(gè)等號就可以了,對象可以象任何其他值一樣對待。雖然省略Set簡化了代碼,但也有一個(gè)附帶的影響:默認(rèn)屬性不再有效。例如,下面這種屬性值引用方法不再合法: 
  Text1 = "這是對象的默認(rèn)屬性值。" 
    相反,屬性值必須按照如下方式顯式引用:
  Text1.Text = "這是對象的默認(rèn)屬性值。" 
    從表面上看來,VB.NET作這種要求似乎沒有必要。但事實(shí)上,它對于擺脫默認(rèn)屬性來說卻是必要的。例如,假設(shè)有一個(gè)名字為objFoo的對象變量,由于沒有了Set語句,假若屬性值仍舊可以象原來一樣引用,下面這個(gè)語句到底是什么意思就很難確定了: 
  objFoo = Text1 
    這個(gè)語句是設(shè)置了一個(gè)對Text1的引用,還是把Text1的Text屬性值賦給了objFoo?我們無法作出判斷,編譯器也同樣不能判斷。因此,拋棄Set語句也就意味著必須放棄默認(rèn)屬性值。
  
    .NET中最不讓人喜歡的改動(dòng):Microsoft改變了一些早就在使用的數(shù)據(jù)類型的含義。在.NET中,Integer變成了32位,而Long則是64位?梢韵胂,這種改變將導(dǎo)致程序員頻繁地用錯(cuò)變量類型。例如,調(diào)用某個(gè)API函數(shù)時(shí)應(yīng)該使用16位的Integer還是使用32位的Integer?但愿Microsoft能夠重新考慮這個(gè)決定,采用一些新的變量類型名字,如Int32和Long64。
  
    VB.NET引入了Option Strict關(guān)鍵詞。Option Strict關(guān)鍵詞用于替代Option Explicit。原來的VB允許把一個(gè)數(shù)字值賦給字符串變量,或者進(jìn)行其它類似的不正常賦值操作,Option Strict結(jié)束了這種情況。聲明Option Strict告訴Visual Basic.NET不要進(jìn)行任何強(qiáng)制的類型轉(zhuǎn)換。當(dāng)然,VB.NET也不是完全限制了類型自動(dòng)轉(zhuǎn)換:它允許進(jìn)行向下的自動(dòng)類型轉(zhuǎn)換(Cast),但不支持向上的自動(dòng)類型轉(zhuǎn)換。例如,如果不是使用“sngvariable = CSng(dblvariable)”這類語句進(jìn)行顯式的類型轉(zhuǎn)換,聲明為Single的變量不能設(shè)置為Double變量的值,因?yàn)樗赡軐?dǎo)致數(shù)據(jù)丟失;然而,Double變量可以直接設(shè)置為Single類型變量的值,且無需顯式地進(jìn)行類型轉(zhuǎn)換,因?yàn)檫@里不存在數(shù)據(jù)丟失問題。使用Option Strict能夠幫助開發(fā)者減少許多錯(cuò)誤,包括許多難以調(diào)試的錯(cuò)誤。附帶說明:使用Option Strict時(shí)不允許再使用延遲綁定.
作者:未知 | 文章來源:未知 | 更新時(shí)間:2008-1-15 16:40:41

  • 上一篇文章:

  • 相關(guān)文章:
    如何在VB.net錄入驗(yàn)證?
    基礎(chǔ)學(xué)習(xí):VB.NET順序文件的操作方法
    基礎(chǔ)學(xué)習(xí):VB.NET隨機(jī)文件的操作方法
    VB.NET完善的面向?qū)ο笾С?/a>
    VB.NET對象的廣泛應(yīng)用
    VB.NET公共運(yùn)行時(shí)的環(huán)境
    VB.NET字符數(shù)據(jù)類型和其他數(shù)據(jù)類型
    多線程技術(shù)在.net中是如何應(yīng)用的
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·.net技術(shù) asp.net MVC3 Vi
    ·.net將視頻文件格式轉(zhuǎn)換成
    ·NET Framework 2.0 Servic
    ·如何動(dòng)態(tài)修改winform的app
    ·asp,net軟件結(jié)構(gòu)設(shè)計(jì)和相關(guān)
    ·學(xué)習(xí)怎樣使用ASP.NET中的虛
    ·,net基礎(chǔ)類的學(xué)習(xí):system
    ·.net學(xué)習(xí):c#事件的深入分
    ·Facade Pattern學(xué)習(xí)總結(jié)
    ·C#如何設(shè)置或者獲取目錄的
    ·如何使用XSL來定義ASP.NET
    ·理解WCF Data Contract契約
    ·如何能在.net2.0開發(fā)的控件
    ·模式怎樣使用,講解模式的
    ·如何解決Menu菜單被frame遮
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) m.jdtbank.com All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    泾源县| 浦东新区| 宁海县| 上饶市| 高青县| 新河县| 高阳县| 光山县| 余江县| 临夏县| 宜阳县| 合肥市| 织金县| 固安县| 含山县| 宣恩县| 柳州市| 浙江省| 乐至县| 土默特左旗| 许昌县| 木兰县| 中方县| 玉田县| 土默特右旗| 兴安盟| 哈尔滨市| 无极县| 赣榆县| 西贡区| 安塞县| 凤翔县| 资源县| 宁德市| 长子县| 托克托县| 佛山市| 克拉玛依市| 尼木县| 东丰县| 永兴县|