真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

包含vband.net的詞條

VB.net 和C#.net 各有什么優(yōu)缺點(diǎn)

C#.net優(yōu)點(diǎn):

我們提供的服務(wù)有:做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、吳中ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的吳中網(wǎng)站制作公司

運(yùn)算符重載。不安全代碼(指針和固定內(nèi)存區(qū))、?無(wú)符號(hào)整數(shù)、移位運(yùn)算。

VB的優(yōu)點(diǎn):?

即時(shí)編譯、靜態(tài)事件綁定、條件異常捕獲、COM兼容類、寬松的類型檢查和變量聲明、Visual Basic Runtime庫(kù)、可選參數(shù)、帶參數(shù)屬性、模塊等語(yǔ)言特征、動(dòng)態(tài)數(shù)組。

通過VB.NET開發(fā)好的程序絕對(duì)沒有問題(包括Direct X游戲開發(fā))。雖然VB.NET的資料少,但是只要C#支持的VB.NET都支持(大體上這樣,因?yàn)槎家?jīng)過MSIL中間環(huán)節(jié)。除了指針之類的VB.NET不支持C#支持,但是沒有多大實(shí)際用處)。

vb.net的資料以英文資料居多(只有英文資料才有看頭,中國(guó)的沒有什么好資料),得看看英文水平過不過關(guān)。還有VB.NET的ide也比C#的IDE好得多,代碼看得也舒服。(C#的大括號(hào){}太煩人)。

至于VB6對(duì)C的幫助,只是理解上會(huì)容易一些,其它用處不大。有VB6的基礎(chǔ)學(xué)VBNET會(huì)方便一些,但是并不是會(huì)VB6就會(huì)VB.NET,它們差別也不小。

擴(kuò)展資料:

NET、C#和ASP.NET之間的區(qū)別 :

1、NET是一個(gè)平臺(tái),一個(gè)抽象的平臺(tái)的概念。

NET 平臺(tái)其本身實(shí)現(xiàn)的方式其實(shí)還是庫(kù),抽象層面上來看是一個(gè)平臺(tái)。

基本可以理解的NET核心就是NETFramwork。

NETFramework包括兩個(gè)關(guān)鍵組成元素:

a. CommonLanguageRuntime,公共語(yǔ)言運(yùn)行時(shí)(CLR0)-提供內(nèi)在管理,代碼安全性檢測(cè)等功能。

b. NETFrameworkClassLibrary,.NET 框架類庫(kù)(FLC)-提供大量應(yīng)用類庫(kù),提高開發(fā)效率。

學(xué)習(xí)NET Framework 是所有.NET開發(fā)人員都必須的,否則開發(fā)NET程序永遠(yuǎn)都是停留在‘外功’的招式,NETramework 是NET開發(fā)高手的‘內(nèi)功’修行之一。

2、C#是一個(gè)程序設(shè)計(jì)語(yǔ)言,僅僅是一個(gè)語(yǔ)言。

程序設(shè)計(jì)語(yǔ)言僅僅是為了方便開發(fā)人員和計(jì)算機(jī)溝通的工具,雖然 C#語(yǔ)法相對(duì) C 和?C+要多一些,但是相對(duì)來看 C#語(yǔ)法都比較固定,這樣使用起來卻都很容易。我認(rèn)可一位朋友說的,C#的語(yǔ)法更嚴(yán)謹(jǐn)!

這里回過來看看NET和C#的關(guān)系,不得不提的是NET程序的執(zhí)行過程。

C#符合NETCLR 中的公共語(yǔ)言運(yùn)行規(guī)范。CLS:commonlanguagespecification,當(dāng)然所有的NET Language 都是符合這個(gè)規(guī)范的例如:VB.NET、XAML 和 C++/CL等等。

C#需要符合NETCLS,是因?yàn)镹ETCLR和JAVA虛擬機(jī)類似,有一個(gè)中間語(yǔ)言共機(jī)器來執(zhí)行。所有不同語(yǔ)言的.NET代碼在執(zhí)行前會(huì)被編譯成同樣的中間語(yǔ)言(MSIL),所以所有NET 支持語(yǔ)言都必須符合符合CLS 規(guī)范。

P.S:如果做.NET3.0XAML開發(fā)的朋友,可以嘗試下ildasm.exe看看XAML的應(yīng)用程序,會(huì)發(fā)現(xiàn)原來 XAML其實(shí)很簡(jiǎn)單。

3、ASP.NET是一個(gè)網(wǎng)站開發(fā)的技術(shù),僅僅是.NET框架中的一個(gè)應(yīng)用模型。

用微軟公司ASP.NET快速入門中的一句話來解釋,ASP.NET是用于生成基于Web的應(yīng)用程序的內(nèi)容豐富的編程框架。

ASP.net 和C#的區(qū)別:

編寫asp.net通常包括兩部分的代碼:網(wǎng)頁(yè)層和后臺(tái)處理層,網(wǎng)頁(yè)就是用標(biāo)記語(yǔ)言來寫的,而網(wǎng)頁(yè)對(duì)應(yīng)的后臺(tái)處理程序則需要.net語(yǔ)言來完成,目前主要是采用c#和vb.net。

可以說整個(gè)的asp.net網(wǎng)站通過c#或者vb.net來實(shí)現(xiàn)。而c#則是ms .netframework的主要語(yǔ)言,可以用在網(wǎng)站,桌面應(yīng)用等方面??梢运闶且环N比較流行的編程語(yǔ)言。

vb.net and的特殊用法

我學(xué)的是VBS,問個(gè)問題,請(qǐng)看下面的程序單

(1)

dim a,b

a=12

b=13

if ba then

msgbox("B大于A")

end if

(2)

dim a,b

a=12

b=13

if ba then msgbox("B大于A")

這兩個(gè)程序單中,為什么程序(1)需要用end if結(jié)尾,而程序(2)則不需要??

vb和vb.net的區(qū)別

VB.NET和VB6.0有什么區(qū)別

Visual Basic .NET是Microsoft Visual Studio .NET套件中主要組成部分之一。.NET版本的Visual Basic增加了更多特性,而且演化為完全面向?qū)ο螅ň拖馛++)的編程語(yǔ)言。本文將介紹VB.NET的新特性,并比較VB6.0/VB.NET之間的區(qū)別,闡述如何利用VB.NET編寫簡(jiǎn)單的應(yīng)用程序。

1.1 什么是 VB.NET? Microsoft推出全新的編程和操作系統(tǒng)Framework——.NET,支持多種語(yǔ)言利用公共.NET庫(kù)開發(fā)應(yīng)用程序,這些應(yīng)用程序在.NET Framework上運(yùn)行。使用Visual Basic在.NET Framework上編程,這就是VB.NET。

首先,讓我演示在VB.NET中寫最簡(jiǎn)單的控制臺(tái)程序:Hello World。

1.2 Hello, World!“Hello World!”是初學(xué)者學(xué)習(xí)Windows編程的代表性程序。我們的第一個(gè)程序就叫做“Hello VB.NET World!”。該程序在控制臺(tái)輸出一句話:“Hello VB.NET World!”,代碼如下所示:

代碼 1.1: Hello VB.NET World例子Imports System

Module Module1

Sub Main()

System.Console.WriteLine("Hello VB.NET World!")

End Sub

End Module

1.3 VB.NET 編輯器和編譯器你可以在記事本或VS.NET IDE等任意文本編輯器中撰寫上述代碼,然后保存為HelloWorld.vb。 代碼編寫完成之后,要么在命令行、要么在VS.NET IDE中編譯它。在Microsoft .NET Framework SDK中已經(jīng)包括VB.NET編譯器vbc.exe[][1],從IDE或是命令行都可以調(diào)用。要從命令行編譯HelloWorld.vb,請(qǐng)?jiān)诿钚写翱谳斎?/p>

vbc HelloWorld.vb /out:HelloWorld.exe /t:exe

編譯結(jié)束后,HelloWorld.exe被創(chuàng)建到當(dāng)前目錄下。在資源管理其中雙擊圖標(biāo)或在命令行執(zhí)行,程序正確地運(yùn)行了。祝賀你進(jìn)入VB.NET開發(fā)者的行列。

Imports 語(yǔ)句

如你所知,大部分的.NET類型都在名字空間(namespace)中定義。Namespace是定義和管理類別的范疇。察看.NET Framework Class Library,可以看到數(shù)以百計(jì)的namespace。例如,System namespace就包括了Console、Object等類型定義。如果想使用Console類,需要用Imports指令導(dǎo)入System namespace。如下所示:

Imports System甚至可以明確地調(diào)用namespace而無(wú)需用Import導(dǎo)入。下面的例子展示了不用Import的“Hello World!”程序:

代碼1.2: Hello VB.NET World例子Module Module1

Sub Main()

System.Console.WriteLine("Hello VB.NET World!")

End SubEnd Module1.4 解析 "Hello VB.NET World!"程序第一行是:

Imports System; System namespace定義了Console類,該類用于讀寫控制臺(tái)(命令行窗口)。然后你定義了一個(gè)module:Module Module1

…End Module所有的VB程序都包括一個(gè)Main()方法,即應(yīng)用程序入口點(diǎn)。在例子程序中,我們調(diào)用Console.WriteLine()向控制臺(tái)寫入“Hello VB.NET World!”:

Sub Main()

Console.WriteLine(“Hello VB.NET World!”) End SubWriteLine()方法歸屬于Console類,它負(fù)責(zé)向控制臺(tái)寫一個(gè)帶有行結(jié)束符的字符串。如前所述,Console類定義于System namespace,你通過直接引用來控制類成員。

Console類負(fù)責(zé)讀寫系統(tǒng)控制臺(tái)。讀控制臺(tái)輸入用Read和ReadLine方法,向控制臺(tái)輸出用WriteLine方法。

表1.1 Console類定義的方法

方法 用途 例子

Read 讀入單個(gè)字符 int i = Console.Read();

ReadLine 讀入一行 string str = Console.ReadLine();

Write 寫一行 Console.Write("Write: 1");

WriteLine 寫一行,并帶上行結(jié)束符

Console.WriteLine("Test Output Data with Line");

1.5 VB.NET有什么新特點(diǎn)? VB.NET比 VB6.0更加穩(wěn)定,而且完全面向?qū)ο蟆R苍S你還記得,VB6.0不支持繼承、重載和接口,所以不是真正面向?qū)ο蟮?。而VB.NET則支持這些面向?qū)ο筇匦?。VB6.0有兩個(gè)薄弱環(huán)節(jié)——多線程和異常處理。在VB.NET中,開發(fā)多線程應(yīng)用和使用C++/C#別無(wú)二致,結(jié)構(gòu)化異常處理也得到支持。稍后我們會(huì)詳細(xì)解釋這些特性。

下面是VB.NET的特性列表——

·面向?qū)ο蟮木幊陶Z(yǔ)言。支持繼承、重載、接口、共享成員和構(gòu)造器。·支持所有的CLS特性,如存取控制.NET類、與其它.NET語(yǔ)言交互、元數(shù)據(jù)、公共數(shù)據(jù)類型、委托等等?!ざ嗑€程支持?!そY(jié)構(gòu)化異常處理。 1.6 名字空間與集合 前面討論了我們的第一個(gè)VB.NET程序。該程序中首先引人注意的是名字空間(namespace)。在.NET參考文檔中,你會(huì)發(fā)現(xiàn)每個(gè)類都?xì)w屬于某個(gè)namespace。那么,namespace到底是什么?

一個(gè)namespace是類和組件的邏輯組合,其目的在于將.NET class按類別定義。微軟借用了C++ class packaging概念:namespace來描述這種組合。.NET Framework中的組件被稱為集合(assembly)。全部.NET代碼在數(shù)百個(gè)庫(kù)文件(DLL)中定義。Namespace把a(bǔ)ssembly中定義的類組織起來。一個(gè)namespace可以包括多個(gè)assembly,一個(gè)assembly也可以在多個(gè)namespace中定義。 namespace樹的根節(jié)點(diǎn)是System namespace。在.NET Library中,每個(gè)class都在一組相似的類別中定義。例如,System.Data namespace只包括數(shù)據(jù)相關(guān)類。同樣,System.Multithreading只包括多線程類。

在使用.NET支持的語(yǔ)言(如C#、VB.NET、C++.NET等)創(chuàng)建新應(yīng)用程序時(shí),你會(huì)注意到每個(gè)應(yīng)用程序都被定義為一個(gè)namespace,而所有的class都?xì)w屬于這個(gè)namespace。通過引用這個(gè)namespace,其它應(yīng)用程序就能存取這些class。 在.NET中,代碼被編譯為中間語(yǔ)言(Intermediate Language,IL),assembly中存儲(chǔ)了IL代碼、元數(shù)據(jù)和其它資源文件。同一個(gè)assembly可以附屬于一個(gè)或多個(gè)Exe/DLL。所有的.NET庫(kù)都存儲(chǔ)在assembly中。

1.7 VB.NET: 完全面向?qū)ο蟮木幊陶Z(yǔ)言抽象、封裝、多態(tài)、繼承是面向?qū)ο笳Z(yǔ)言的四個(gè)基本屬性。VB6.0不支持繼承,而VB.NET則不然。所以,和C++一樣,VB.NET也是完全面向?qū)ο蟮木幊陶Z(yǔ)言。

Class 和 ModuleVB.NET用Class...End Class語(yǔ)句對(duì)創(chuàng)建class。每個(gè)VB.NET至少包括一個(gè)Module(模塊)。Module在Module…End Module語(yǔ)句對(duì)中實(shí)現(xiàn)。應(yīng)用程序的主要模塊是Main方法,亦即應(yīng)用程序入口點(diǎn)。

和VB6.0相似的地方是,都可以使用Function/Sub關(guān)鍵字定義方法。下面的例子顯示了如何創(chuàng)建class、添加方法,并從主程序調(diào)用方法: Imports System

Module Module1

Sub Main()

Dim cls As TestClass = New TestClass

Console.WriteLine(cls.MyMethod)

End Sub

Class TestClass

Function MyMethod() As String

Return "Test Method"

End Function

End Class

End ModuleProperty屬性(Property)是類變量的公共描述。Property…End Property語(yǔ)句用以創(chuàng)建property。屬性的Get/Set方法分別用于取得和設(shè)置屬性值。下面的例子中,Data是TestClass的屬性。

Imports System

Imports System.Console

Module Module1

Sub Main()

Dim cls As TestClass = New TestClass

WriteLine(cls.MyMethod)

WriteLine(cls.Data)

cls.Data = "New Data"

WriteLine(cls.Data)

End Sub

End Module

Class TestClass

Private strData As String = "Some Data"

Function MyMethod() As String

Return "Test Method!"

End Function

' Adding Data property to the class

Public Property Data() As String

Get

Return strData

End Get

Set(ByVal Value As String)

strData = Value

End Set

End Property

重載VB.NET通過overload關(guān)鍵字支持方法重載。使用這個(gè)關(guān)鍵字,你可以定義同名但不同參數(shù)的方法。

類成員訪問域

除了原有的Private和Public,VB.NET引入了幾個(gè)新關(guān)鍵字。全部訪問域關(guān)鍵字列表如下:

關(guān)鍵字 作用域

Private 限于class內(nèi)部

Public 可以從class外訪問

Friend 限于class所屬的應(yīng)用程序內(nèi)

Protected 只能被class和其派生類訪問

Protected Friend 能被class、應(yīng)用程序和派生類訪問

繼承繼承是面向?qū)ο缶幊陶Z(yǔ)言中最常用的技術(shù)。繼承讓你能夠重用類代碼和功能。

VB.NET支持繼承,而VB6.0則不支持。繼承的好處在于你能使用任何人編寫的類,從這些類派生自己的類,然后在自己的類中調(diào)用父類功能。在下面的例子中,Class B派生自Class A,我們將從Class B中調(diào)用Class A的方法MethodA。

Imports System

Imports System.Console

Module Module1

Sub Main()

Dim bObj As B = New B

WriteLine(bObj.MethodA())

End Sub

End Module

' Class A defined

Public Class A

Function MethodA() As String

Return "Method A is called."

End Function

End Class

'Class B, inherited from Class A. All members (Public and Protected)

' can be access via B now.

Public Class B

Inherits A

Function MethodB() As String

Return "Method B is called."

End Function

End Class

可以從一個(gè)class中派生多個(gè)自定義class,也可以從多個(gè)class派生一個(gè)自定義class。

共享的成員類的共享成員被類的所有實(shí)體共享。共享成員可能是屬性、方法或字段/值域。在你不想讓用戶全面控制自己的類時(shí),共享成員相當(dāng)有用。例如,你可以開發(fā)一個(gè)類庫(kù),讓用戶通過共享成員使用其中的部分功能。

可以通過class本身引用共享成員,而無(wú)需通過類的實(shí)體。例如:Module Module1

Sub Main()

WriteLine(A.MethodA())

End Sub

End Module

' Class A defined

Public Class A

Shared Function MethodA() As String

Return "Method A is called."

End Function

End Class

多線程VB語(yǔ)言的一大弱點(diǎn)就是缺乏編寫自由線程(free-threaded)程序的能力。在.NET Framework中,所有語(yǔ)言共享CRL(Common Runtime Library,公共運(yùn)行庫(kù)),也就是說,你可以用VB.NET、C#或其它.NET語(yǔ)言編寫同樣的程序。

System.Threading namespace定義了線程類。我們只需要引入System.Threading namespace,即可使用線程類。

System.Threading.Thread類提供線程對(duì)象,可以使用Thread類創(chuàng)建或破壞線程。

創(chuàng)建線程使用Thread類的實(shí)體創(chuàng)建一個(gè)新線程,然后用Thread.Start方法開始執(zhí)行線程。線程構(gòu)造器接受一個(gè)參數(shù),該參數(shù)指明你要在線程中執(zhí)行的procedure。在下例中,我想在oThread1(Thread類的一個(gè)實(shí)體)的第二線程中執(zhí)行SecondThread過程:

oThread1 = New Thread(AddressOf SecondThread)

SecondThread procedure looks like below:

Public Sub SecondThread()

Dim i As Integer

For i = 1 To 10

Console.WriteLine(i.ToString())

Next

End Sub

然后,調(diào)用Thread.Start()開始線程:

oThread1.Start()

下面的代碼創(chuàng)建兩個(gè)第二線程:

Imports System

Imports System.Threading

Module Module1

Public oThread1 As Thread

Public oThread2 As Thread

Sub Main()

oThread1 = New Thread(AddressOf SecondThread)

oThread2 = New Thread(AddressOf ThirdThread)

oThread1.Start()

oThread2.Start()

End Sub

Public Sub SecondThread()

Dim i As Integer

For i = 1 To 10

Console.WriteLine(i.ToString())

Next

End Sub

Public Sub ThirdThread()

Dim i As Integer

For i = 1 To 10

Console.WriteLine("A" + i.ToString())

Next

End Sub

End Module

破壞線程 調(diào)用Abort方法來破壞(中止)一個(gè)線程。在調(diào)用Abort之前,確保用IsAlive判斷線程處于活動(dòng)狀態(tài)。

If oThread1.IsAlive Then

oThread1.Abort()

End If

暫停線程可以使用Sleep方法來暫停線程執(zhí)行。Sleep方法接受一個(gè)以毫秒為單位的參數(shù),指明線程應(yīng)當(dāng)暫停多長(zhǎng)時(shí)間。

下面的例子讓線程暫停1秒鐘:

oThread2.Sleep(1000)你也可以使用Suspend和Resume方法來掛起和繼續(xù)線程執(zhí)行。

設(shè)定線程優(yōu)先級(jí)Thread類的Priority屬性用于設(shè)定線程優(yōu)先級(jí)。該屬性可以設(shè)置為Normal,AboveNormal,BelowNormal,Highest和Lowest。如:

oThread2.Priority = ThreadPriority.Highest線程與Apartment使用ApartmentState屬性設(shè)置線程的apartment類型,該屬性值可以為STA,MTA或是Unknown[][2]:

oThread.ApartmentState = ApartmentState.MTAMTS意味著可以使用多線程模式,而STA則只能是單線程執(zhí)行。

Public Enum ApartmentState

{

STA = 0,

MTA = 1,

Unknown = 2,

}

1.8 結(jié)構(gòu)化異常處理異常處理也被稱之為錯(cuò)誤處理。作為VB程序員,你一定對(duì)On Error Goto和On Error Resume Next這些VB6.0錯(cuò)誤處理語(yǔ)句耳熟能詳。這種類型的錯(cuò)誤處理被稱為非結(jié)構(gòu)化異常處理(Unstructured Exception Handling)。而在VB.NET中,Microsoft推出了結(jié)構(gòu)化異常處理機(jī)制。VB.NET支持類似C++的TryCatch..Finally控制。Try..Catch..Finally結(jié)構(gòu)如下: Try

' 可能導(dǎo)致異常的代碼

Catch

' 當(dāng)異常發(fā)生時(shí)處理異常的代碼

Finally

' 清理現(xiàn)場(chǎng)

End Try

Try語(yǔ)句塊用以拋出異常。如果異常發(fā)生,在Catch語(yǔ)句塊中處理。Finally語(yǔ)句塊是可選的,在需要釋放資源時(shí)特別有用。

1.9 VB6.0與VB.NET的不同之處除了上面談到的語(yǔ)言進(jìn)化,還有一些語(yǔ)法上的變化。所有這些語(yǔ)言和語(yǔ)法的變化在MSDN中均可查到,本文只作簡(jiǎn)單介紹。

數(shù)據(jù)類型(Data Type)的改變VB.NET中有些數(shù)據(jù)類型得到改進(jìn)。下面是變化對(duì)照表。

數(shù)據(jù)類型 VB6.0 VB.NET

Integer 16 bit size 32 bit size

Long 32 bit size 64 bit size

Currency 用于存儲(chǔ)大浮點(diǎn)數(shù) 被decimal替代,支持更高精度

Variant 可以存儲(chǔ)任意類型數(shù)據(jù) 被Object類型替代,也可以存儲(chǔ)任意類型數(shù)據(jù),但結(jié)果更好

Date Date類型被存儲(chǔ)為double 引入DateTime類型,用于存儲(chǔ)不同格式的日期

在VB.NET中,Short數(shù)據(jù)類型是16 bit的。Short,Integer和Long都等同于CLR的System.Int16、System.Int32和System.Int64類型。 變量聲明的變化在VB6.0中,變量聲明有許多限制。其中之一就是不能同行聲明多個(gè)變量。如果一定要在一行中聲明多個(gè)變量,就一定得指明每個(gè)變量的類型,否則將被默認(rèn)為Variant類型。

Dim a1, a2 As Integer Dim a3 As Integer, a4 As Integer 第一行中的a1是Variant類型,a2是Integer類型。第二行中兩個(gè)變量都是Integer類型。VB.NET支持同行聲明多個(gè)變量,舉例如下:

Dim a1, a2, a3 As Integer 變量初始化是另一個(gè)問題。在VB6.0中不能同時(shí)聲明和初始化變量,而VB.NET則支持這個(gè)特性。

Dim name As String = "Mahesh"System.Console.Write(name) 聲明常量也可以照此辦理:Const DT_COUNT As Integer = 23 New關(guān)鍵字。在VB.NET中,New關(guān)鍵字用于創(chuàng)建對(duì)象。由于數(shù)據(jù)類型是對(duì)象,所以New關(guān)鍵字用以創(chuàng)建一個(gè)數(shù)據(jù)類型對(duì)象。

Dim i As Integer = New Integer()i = 10System.Console.WriteLine(i.ToString()) 代碼塊級(jí)別支持。像C++一樣,VB.NET支持代碼塊級(jí)別的作用域檢查。在語(yǔ)句塊中聲明的變量只在塊內(nèi)有效。

For i = 1 To 10Dim p As LongSystem.Console.WriteLine(i.ToString())NextSystem.Console.WriteLine(p.ToString()) 這段代碼在VB.NET中會(huì)得到一個(gè)編譯錯(cuò)誤,因?yàn)閜在For..Next語(yǔ)句塊之外不可訪問。在VB6.0中這段代碼可以通過。

改進(jìn)了的類型安全

在VB6.0中,當(dāng)你聲明一個(gè)對(duì)外部過程的引用時(shí),可以指定任意類型的參數(shù)為As Any。Any關(guān)鍵字禁止了類型檢查,允許任意數(shù)據(jù)類型傳入和返回。

VB.NET不支持Any關(guān)鍵字。你必須指定每個(gè)參數(shù)和返回值的數(shù)據(jù)類型。數(shù)組VB.NET對(duì)數(shù)組作了明顯的改動(dòng)。

數(shù)組范圍。在VB.NET中,你需要格外留意數(shù)組范圍問題。VB6.0默認(rèn)數(shù)組下界為0,故數(shù)組中的元素?cái)?shù)量等與數(shù)組上界值加一。下面的數(shù)組界限從A(0)到A(10),共有11個(gè)元素:

Dim A(10) As Single可以使用Option Base改變下界值為1。在VB.NET中,數(shù)組和C++一樣,下界值為0,不支持Option Base。注意:MSDN文檔指出數(shù)組只能包括與其尺寸相等的元素?cái)?shù)量,例如:Dim A(10) As Integer 只能包括10個(gè)元素(從A(0)到A(9)),但在編譯下面這段代碼時(shí)我發(fā)現(xiàn)它運(yùn)行良好,看起來數(shù)組中容納了11個(gè)元素。

Dim A(10) As Integer A(0) = 12 A(2) = 24 A(10) = 23 System.Console.WriteLine(A(0).ToString()) System.Console.WriteLine(A(10).ToString())System.Console.WriteLine(UBound(A).ToString()) System.Console.WriteLine(LBound(A).ToString()) Lbound和Ubound分別返回 0與10。ReDim和Fixed Array。你可以在VB6.0中指定固定長(zhǎng)度的數(shù)組。

Dim ArrWeekDays(0 To 6) As Integer

這里的ArrWeekDays數(shù)組是固定長(zhǎng)度的,不能用ReDim語(yǔ)句改變長(zhǎng)度。VB.NET不支持固定長(zhǎng)度數(shù)組,所以ReDim總是有效。

可以用下面兩種方式聲明數(shù)組: Dim ArrWeekDays(6) As IntegerDim ArrWeekDays() As Integer = {1, 2, 3, 4, 5, 6} ReDim語(yǔ)句。在VB6.0中,ReDim用于初始化動(dòng)態(tài)數(shù)組。在VB.NET中你不能把它當(dāng)作聲明用。ReDim只能用于改變數(shù)組長(zhǎng)度,不過不能改變數(shù)組維度。

Variant對(duì)陣ObjectVB6.0中的Variant數(shù)據(jù)類型能存儲(chǔ)任意類型變量,VB.NET中Object具備相同能力。

算術(shù)操作符VB.NET支持類似C++的快捷方式。下面的表格顯示了常規(guī)操作與快捷操作的不同之處。快捷方式也可用于*、/、|、等操作符。

操作符 常規(guī)語(yǔ)法 快捷方式加法 A = A+5 A +=5 減法 A = A – 5 A -+ 5固定長(zhǎng)度字符串

在VB6.0中,可以在聲明字符串時(shí)指定其長(zhǎng)度。VB.NET不支持固定長(zhǎng)度字符串。

布爾操作符VB6.0中的And、Or或是Xor語(yǔ)句是按位操作符。而在VB.NET中,它們是布爾操作符。執(zhí)行這些操作將返回true或false。VB.NET引入新操作符來完成按位操作。

操作符 描述 BitAnd 按位AndBitOr 按位OrBitXor 按位XorBitNot 按位Not結(jié)構(gòu)與自定義類型在VB6.0中,你使用Type…End Type語(yǔ)句塊創(chuàng)建結(jié)構(gòu)或自定義類型。例如:

Type StdRec

StdId As Integer

StdName As String End Type

VB.NET引入新的語(yǔ)法:Structure。Type…End Type不再被支持。Structure…End Structure與C++用法相同??梢灾付ńY(jié)構(gòu)中每個(gè)元素的可訪問域,如Public、Protected、Friend、Protected Friend、Private等。例如:

Structure StdRec

Public StdId As Integer Public StdName As String

Private StdInternal As String End StructureVB.NET中的Structures就像類一樣,也可以擁有方法和屬性。New和Nothing關(guān)鍵字VB6.0中,AS New和Nothing關(guān)鍵字用于聲明一個(gè)對(duì)象并初始化它。 VB.NET不支持隱式創(chuàng)建對(duì)象。如前所言,甚至連數(shù)據(jù)類型都是對(duì)象。你可以采用以下兩種方法創(chuàng)建數(shù)據(jù)類型或?qū)ο螅?Dim i As Integer Dim i As Integer = New Integer() // Do something if i = Nothing Then End If 不支持Set語(yǔ)句VB6.0使用Set語(yǔ)句指派對(duì)象。例如:Set myObj = new MyObjectSet a = b在VB.NET中,不需要使用Set指派對(duì)象。例如:myObj = new MyObj()a = b過程(procedure)語(yǔ)法的變化在VB.NET中過程語(yǔ)法有了很多變化。例如類似C++的過程調(diào)用方式、ByVal(傳值)為默認(rèn)類型、Optional關(guān)鍵字、return語(yǔ)句等等。類似C++的過程調(diào)用方式 VB6.0允許不用加圓括號(hào)調(diào)用過程(sub)。不過,用Call語(yǔ)句調(diào)用函數(shù)或sub時(shí),一定要使用圓括號(hào)。例如:Dim I as IntegerCall EvaluateData(2, i) EvaluateData 2, i 在VB.NET中,所有的方法調(diào)用都需要圓括號(hào),而Call語(yǔ)句則是可選的。 ByVal是默認(rèn)參數(shù)類型在VB6.0中,在調(diào)用函數(shù)或sub時(shí)ByRef(傳址)是默認(rèn)類型。那意味著所有改變將反映到傳入的變量。VB.NET改變了這種方式。現(xiàn)在,默認(rèn)的參數(shù)類型是ByVal(傳值)。 Optional關(guān)鍵字VB6.0使用Optional關(guān)鍵字可用來讓用戶決定傳入一個(gè)默認(rèn)值,之后在調(diào)用IsMissing函數(shù)判斷參數(shù)是否有效。 而在VB.NET中,每個(gè)可選參數(shù)必須聲明其默認(rèn)值,無(wú)需調(diào)用IsMissing函數(shù)。例如:Sub MyMethod(Optional ByVal i As Integer = 3)

Return語(yǔ)句VB.NET的Return語(yǔ)句與C++相似。使用Return語(yǔ)句把控制權(quán)從過程返還給調(diào)用者。在VB6.0中,Return語(yǔ)句與GoSub語(yǔ)句一起使用。VB.NET不再支持GoSub語(yǔ)句。流程控制的改變下面是VB.NET對(duì)流程控制語(yǔ)句的修改:1. GoSub不再受到支持。2. Call、Function和Sub語(yǔ)句均可用于調(diào)用過程。3. On ... GoSub和On ... GoTo語(yǔ)句不再受支持??梢允褂肧elect Case語(yǔ)句來替代。4. While ... Wend語(yǔ)句現(xiàn)在改為While…End While語(yǔ)句。不再支持Wend關(guān)鍵字。小結(jié) Visual Basic .NET是.NET版本的Visual Basic,已經(jīng)從根本發(fā)生了變化!通過本文你了解到VB6.0和VB.NET的區(qū)別是很大的,可以說根本就是兩種不同的語(yǔ)言,因?yàn)樗鼈兊膬?nèi)核發(fā)生了變化,VB6.0是基于COM而vb.net是基于.net框架的,因?yàn)檫@個(gè)變化,所以在構(gòu)造類時(shí)也發(fā)生了根本性的變化。

VB.net中的 and判斷條件問題

911 X + 1 916 還有 704 Y +? 1 709,沒有這么連續(xù)判斷的。

是比較運(yùn)算符,是運(yùn)算符!+、-、*、/ 是算術(shù)運(yùn)算符,也是運(yùn)算符!

既然是運(yùn)算符,就得按照運(yùn)算優(yōu)先級(jí)(所謂優(yōu)先級(jí),就是 * 運(yùn)算比 + 運(yùn)算要優(yōu)先)從左到右依次計(jì)算,顯然 911 X + 1 916 里兩個(gè) 的運(yùn)算優(yōu)先級(jí)是相同的。

那么從左至右依次計(jì)算,先算 911 X + 1,得到結(jié)果 True(-1) 或者 False(0)(不要問我為什么True=-1,F(xiàn)alse=0,.NET里就是這么規(guī)定的),再計(jì)算 True / False 916,結(jié)果始終為 True。704 Y + 1 709 也是同理,兩個(gè) True 之間 And 了還是 True,結(jié)果當(dāng)然是條件一直成立。

正確寫法:

If?(911??X?+?1?And?X?+?1??916)?And?(704??Y?+?1?And?Y?+?1??709)?Then

VB.net語(yǔ)言當(dāng)中,And和AndAlso有什么區(qū)別?

AndAlso是短路的邏輯與運(yùn)算符,And有兩個(gè)含義:非短路的邏輯與運(yùn)算符;按位與運(yùn)算符

Dim c=a AndAlso b表達(dá)式中,若表達(dá)式a的計(jì)算結(jié)果是False,無(wú)論表達(dá)式b是什么樣,都不再進(jìn)行計(jì)算,直接返回c的值

Dim c=a And b表達(dá)式中,無(wú)論a和b是怎樣的表達(dá)式,都要全部計(jì)算完成后再返回c的值

AndAlso相比And的區(qū)別,除了性能優(yōu)勢(shì)外,更重要的是,從語(yǔ)義上來說

If a Then

If b Then

End If

End If

等價(jià)于If a AndAlso b Then而不等價(jià)于If a And b Then

考慮這種情況:

Dim m As ClassM=****

Dim c=m IsNot Nothing AndAlso m.Succeeded

這種實(shí)際編程中經(jīng)常遇到的判斷,如果把AndAlso替換成And,在m Is Nothing的情況下會(huì)引發(fā)NullReferenceException空引用異常,而AndAlso能確保不會(huì)引發(fā)空引用異常

進(jìn)行邏輯運(yùn)算的時(shí)候,And只在一種情況下有價(jià)值:不僅想要得到c的值,而且無(wú)論如何都希望執(zhí)行b過程,并且自己能確保a=False不會(huì)影響b的執(zhí)行。其他情況下務(wù)必使用AndAlso

OrElse和Or同理,作為上面那句的逆判斷

Dim c=m Is Nothing OrElse m.Failed

也是經(jīng)常使用的。當(dāng)然在進(jìn)行位運(yùn)算時(shí),只能用And和Or,AndAlso和OrElse沒有位運(yùn)算功能

酒店管理系統(tǒng)論文

小型酒店管理系統(tǒng)的設(shè)計(jì)包括論文,設(shè)計(jì),論文字?jǐn)?shù):10077,頁(yè)數(shù):29摘 要

隨著酒店行業(yè)競(jìng)爭(zhēng)的加劇,酒店之間客源的爭(zhēng)奪越來越激烈,酒店采用全新的計(jì)算機(jī)管理系統(tǒng),將成為提高酒店的管理效率,改善服務(wù)水準(zhǔn)的重要手段之一。

小型酒店管理系統(tǒng)功能全面,性能穩(wěn)定,界面美觀簡(jiǎn)潔,易于操作?;景司频曛饕獦I(yè)務(wù)功能,其分為基礎(chǔ)設(shè)置、業(yè)務(wù)管理、房間管理三大部分?;A(chǔ)設(shè)置中有客房類型設(shè)置、客房信息設(shè)置功能;業(yè)務(wù)管理包含預(yù)定管理、入住管理、消費(fèi)記帳和收銀退房功能;房間管理可以根據(jù)實(shí)際需要設(shè)置和及時(shí)更新房間狀態(tài)。系統(tǒng)采用C/S模式,運(yùn)用VB.NET語(yǔ)言開發(fā)技術(shù)和SQL SERVER 2000數(shù)據(jù)庫(kù)原理開發(fā)的。在Windows XP/NT/2003等常用操作系統(tǒng)下運(yùn)行穩(wěn)定,可靠。該系統(tǒng)的合理運(yùn)用能提高酒店客房管理效率,降低運(yùn)營(yíng)成本。

本文簡(jiǎn)要介紹了基于Microsoft SQL SERVER 2000數(shù)據(jù)庫(kù)系統(tǒng)和VB.NET程序語(yǔ)言開發(fā)實(shí)現(xiàn)的酒店管理系統(tǒng),著重闡述了該系統(tǒng)開發(fā)實(shí)現(xiàn)過程,從系統(tǒng)的需求分析、方案論證、模塊設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、詳細(xì)設(shè)計(jì)等各個(gè)環(huán)節(jié)都進(jìn)行了較為詳盡的分析和描述。關(guān)鍵詞:酒店管理系統(tǒng);SQL SERVER 2000;數(shù)據(jù)庫(kù);VB.NET

The design of the Small Hotel Management System

Abstract

As the competition getting more force in the hotel industry, the fight for the customers among the hotels is becoming more and more severe, the hotel uses brand new computer management system. This will become one of the important methods for increasing the management efficiency of the hotel management, improving the service level.

The small hotel management system has some excellence, like operating stably, user interfacing simple and attractive, easy to use. Basically including hotel's major business functions. It is divided into basic in fracture, business management, hotel room management, three major groups. There is guest room type configuration and guest room information configuration functions in the basic in fracture portion; the business management portion includes booking management, check-in management, consumption bookkeeping, and check-out pay bill functions; hotel room management may configuration based on the real requirement and changes the room states in real time. The system is developed by using C/S model, using VB.NET language development technology, and SQL server 2000 database. It is operating stably under Windows XP/NT/2003, and has high reliability. This proper use of this system could increase the management efficiency of the hotel, decrease operating cost.

This paper will introduce a database systems based on Microsoft SQL Server 2000 and developed and realized hotel management system using VB.NET programming language. It emphasized the developing process of this system, through a rather detailed analyzing and describing on the various steps of the requirement of the system analysis, solution analysis, module design, data structure design, to system testing.Key words: Hotel management system;SQL SERVER 2000;Data base;VB.NET目 錄

1 引言 1

1.1 課題背景 1

1.2 國(guó)內(nèi)外研究現(xiàn)狀 1

1.3 本課題研究的意義 2

2 相關(guān)的理論基礎(chǔ) 2

2.1 開發(fā)環(huán)境 2

2.2.1 C/S模式簡(jiǎn)介 2

2.2.2 .NET介紹 3

2.2.3 VB.NET介紹 3

2.2 編程運(yùn)行環(huán)境 4

2.2.1 硬件環(huán)境 4

2.2.2 軟件環(huán)境 4

3 設(shè)計(jì)方案介紹 4

3.1 系統(tǒng)功能模塊設(shè)置 4

3.1.1 基礎(chǔ)設(shè)置 4

3.1.2 業(yè)務(wù)管理 4

3.1.3 房間管理 5

3.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 5

3.2.1數(shù)據(jù)庫(kù)設(shè)計(jì)思想 5

3.2.2酒店管理系統(tǒng)E-R圖 10

4 具體模塊設(shè)計(jì) 11

4.1 系統(tǒng)主要功能模塊的實(shí)現(xiàn)及部分代碼 11

4.1客房信息設(shè)置 11

4.2 預(yù)定管理功能 15

4.3 入住管理功能 16

4.4 房間管理 18

4.5 退出系統(tǒng) 21

結(jié) 論 21

參考文獻(xiàn) 22

致 謝 23

聲 明 24

以上回答來自:


標(biāo)題名稱:包含vband.net的詞條
標(biāo)題鏈接:http://weahome.cn/article/hscdpc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部