vb.net等號 vb中等號的作用

vb.net 用ie打開網站地址中有等號時,總是打開我的文檔怎么辦?

參考:

創新互聯公司-專業網站定制、快速模板網站建設、高性價比浉河網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式浉河網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋浉河地區。費用合理售后完善,10多年實體公司更值得信賴。

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Command1_Click()

Dim tUrl

tUrl = ";keyfrom=dict.index"

ShellExecute Me.hWnd, "Open", tUrl, 0, 0, 0

End Sub

vb.net and的特殊用法

我學的是VBS,問個問題,請看下面的程序單

(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")

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

VB.net 下使用activebar 問題

打開對象瀏覽器,設定里面全部勾選,搜索你出錯那句等號后面的東西,搜索結果可能不止一個,挑你需要的那個,復制,然后粘貼到出錯那句等號后面

C#與VB.net有什么不同呀?

都說在.NET里,.NET framework和CLR是應用運行的基礎。那么VB.NET和C#是不是就完全一樣,只是語法不同嗎?

一、C#

--- 像VB一樣簡單,像C++一樣強大的新語

C#是第一流的面向組件的語言

由 Turbo Pascal, Delphi, and Visual J++的首席設計師Anders Hejlsberg 傾心3年設計

所有的語言元素都是真正的對象

開發強壯和可重用的軟件

所有的.NET Framework中的基類庫(Base Class Library)都由C# 編寫

二、VB.NET

--- 完全面向對象的BASIC語言

1.新語言特性

完全面向對象– 繼承(Inheritance), 重載(overloading), 共享的成員, 結構化異常處理

強壯的語言 – 嚴格的類型檢查, 變量聲明時初始化,支持垃圾收集(Garbage collection)

強大 – 支持委托(Delegates), free threading,Variant 數據類型被 Object 代替

2.與VB6一致的語法

三、2者的區別?

1.語法上的差異

例如循環的寫法

VB.NET

For I = 1 To 10

‘ for loop

Next I

C#

For (i=1;i11;i++) {

// for loop

}

另外Visual Basic 對大小寫不敏感,而C#是大小寫敏感的。

2.C# 具有但 Visual Basic 不具有的特性

指針, 移位操作符, 內嵌的文檔(XML)

重載操作符

3.Visual Basic具有但 C# 不具有的特性

更豐富的語法: Events, Try…Catch, Select…Case, 實現 Interface

后期綁定(Late binding), 動態數組, 模塊(modules), 可選參數, 參數屬性(parameterized properties)

后臺編譯

C#與VB.net間移植的技巧

按理說,這兩種語言沒有什么移植的必要,因為他們生成的代碼可以完全通用。但是如果一個工程基本上是VB寫成的,卻需要少許已經存在的C#過程,用組件并不是一種效率很高的辦法。就算是學習C#或VB,學會他們之間的移植可以雙倍的利用已經存在的代碼(如好玩的Donkey.net就只有VB版)。

有人比較過這兩種語言,得出的結論是他們很相似。但即便是這樣,VB初學者看到諸如((Button)sender).Text=“啟動”;之類的語法不知道如何移植到VB,而C#初學者看到Handles Button1.Click等語法也會為移植而感到頭痛。下面就看看他們最難移植的部分:

1、Option語句。VB的Option語句可以打開或關閉變量聲明檢查和類型轉換檢查。尤其是Option Strict被關閉后,VB變成弱類型語言,很多類型轉換都是自動的,移植到C#中會產生無數錯誤。因此,如果要將帶有Option Strict Off語句的VB程序移植到C#,最好先在VB中將Option Strict打開,然后把所有類型轉換出錯的地方變成強類型轉換,然后再進行移植。

2、類型轉換。VB提供了很多類型轉換函數型運算符,如CInt(),CSng(),CStr()等,在C#中只要用(int),(float),(String)即可。然而如果不是標準類型,如下面的C#語句:

((System.Button)sender).Text=“啟動”;

就要使用VB的函數型運算符CType來實現。上面的代碼正確的移植方法是:

CType(sender,System.Button).Text=“啟動”

千萬不要使用某些人推薦的,將Option Strict關閉,然后用后期綁定調用sender對象的方法,這根本不符合程序移植不能改變本質的要求。

3、修飾符和屬性標簽。VB和C#的修飾符是完全對等存在的,但是拼寫往往不同,給移植帶來了很多麻煩,尤其是表示相同意思的關鍵字從字面理解完全不同的時候。下面就給出了VB和C#對應的關鍵字:

VB

C#

VB

C#

Inherits

:

Implements

:

MustInherit

abstract

NotInheritable

sealed

Overridable

virtual

NotOverridable

sealed

MustOverride

abstract

Overrides

override

[Overloads]

Shadows

new

Shared

static

Public

public

Protected

protected

Friend

internal

Protected Friend

protected internal

Private

private

Static

用別的方法實現

ByVal

ByRef

ref

Optional

ParamArray

params

無法實現

unsafe

無法實現

fixed

可以看出,VB的關鍵字比較長,而且使用上也比C#更加嚴格。從C#向VB移植的時候,要分外注意哪些VB有而C#沒有的關鍵字以及在C#拼寫相同,在VB中拼寫不同的關鍵字(如MustOverride和MustInherit)。有些關鍵字如unsafe,如果C#使用了他們,將無法移植到VB中。好在這些關鍵字在商業應用中并不常用。

屬性標簽在這兩種語言中非常的相似,移植上應該沒有任何難度,只要知道在C#中用方括號[]表示屬性標簽,而在VB中用的是尖括號。另外,如果要用名稱結合傳遞參數,C#直接使用=號,而VB使用:=(冒號和等號)。

4、委派類型。委派類型就是安全的函數指針類型。在C#中,難以分辨是函數指針在工作還是函數本身在工作,因為他們的語法相同。當要為一個委派類型的變量復制的時候,直接等于一個函數即可,如:

public delegate void FuncType(Object e)

...

FuncType func;

func=new FuncType(this.SampleFunction1);

//調用

func(something);

//換指向另外一個函數

func=this.SampleFunction2

然而VB中,委派類型就像是一般的對象,有它的方法,與函數本身明顯不同。你不能將過程的名字直接賦給一個委派類型的對象,而必須使用AddressOf運算符,下面的例子就是上文C#程序的VB版,注意那些實現不同的地方:

Public Delegate Sub FuncType(ByVal eAs Object)

...

Dim func As FuncType

func=New FuncType(AddressOf Me.SampleFunc1)

‘調用

func.Invoke(something)

‘換指向另外一個函數

func=AddressOf Me.SampleFunction2

5、事件處理。這是兩種語言最大的差別之一,VB傳承以前版本強大的事件處理機制,許多語法都比C#更加靈活。好在無論什么情況,他們之間都是可以互相移植的。

對于事件定義,兩種語言都是一個委派類型加一個事件屬性,如:

[C#]

public delegate void MyEventHandler(Object sender,EventArgs e);

public event MyEventHandler MyEvent;

[Visual Basic]

Public Delegate Sub MyEventHandler(ByVal sender As Object,ByVal eAs EventArgs)

Public Event MyEvent As MyEventHandler

VB還支持另外一種更加緊湊的定義方法,只有一條語句:

Public Event MyEvent(ByVal sender As Object,ByVal eAs EventArgs)

移植的時候,要把參數部分分離出來,成為一個委派類型,再按照普通方法定義事件即可。

關于事件響應,C#與Delphi等語言一樣,是動態綁定事件過程的,其語法類似于下:

internal MyClass myobj;

...

myobj=new MyClass();

...

myobj.MyEvent+=this.myobj_MyEvent;

...

protected void myobj_MyEvent(Object sender,EventArgs e)

{

//語句

}

可以看到,C#是利用運算符連接事件過程和事件屬性的。之后,還可以用-=運算符解除事件過程與事件屬性的綁定。VB不支持運算符重載,但仍然支持這種動態綁定的事件過程,方法是使用AddHandler和RemoveHandler關鍵字。如上面黑體部分可以移植為:

AddHandler myobj.MyEvent,AddressOf Me.myobj_MyEvent

解除綁定的語法與此類似,只是關鍵字為RemoveHandler而已。一定不要忘記過程前面還有一個AddressOf關鍵字!

動態綁定的事件過程工作起來比較慢,VB支持一種更快的靜態綁定事件過程。一旦為對象設置了靜態的事件過程,就不能解除綁定,一般大多數情況都是如此。語法如下:

‘定義變量時使用WithEvents關鍵字

Friend WithEvents myobj As MyClass

‘直接書寫事件過程,注意Handles的語法:

Protected Sub myobj_MyEvent(ByVal sender As Object,ByVal eAs EventArgs)_

Handles myobj.MyEvent

‘語句

End Sub

它表示myobj_MyEvent這個過程僅僅響應myobj.MyEvent這個過程。如果一個過程要響應很多個事件,把他們列在Handles后面,用逗號隔開,如Handles Event1,Event2,...

遇到這種情況,要看清Handles后面的所有對象和事件,將它們一一改寫成動態綁定的語句:

Protected Sub XXX(...)Handles myobj1.MyEvent,myobj2.MyEvent

==

myobj1.MyEvent+=this.XXX;

myobj2.MyEvent+=this.XXX;

...

protected void XXX(...){}

當事件比較多時,C#顯著變得比較麻煩,幸好一個過程響應一大堆事件的情況也不太多(不過我就編寫過一個過程相應8個事件,移植起來好麻煩!)。原則上說,將靜態事件過程移植為動態事件過程并沒有完全遵守移植的規定,但我估計他們實現的原理不會相差太多,所以也不用擔心。

6、異常處理。VB支持兩種形式的異常,即.net框架的異常和VB自己的錯誤號碼。而C#只支持第一種。用到VB自己的錯誤號碼的程序幾乎無法移植到C#中,所以應該盡量使用.net框架的異常,如下面VB語句:

Try

‘發生錯誤的代碼

Catch When Err.Number=52

‘解決錯誤的代碼

End Try

這段代碼無法直接移植到C#中,只有用Exception對象取代Err對象獲得異常信息,才能順利移植。另外VB的When語句帶給Try語句十分靈活的用法,必須用很高的技巧才能在C#中實現,這就需要具體問題具體分析了。

VB支持Exit Try語句,可以直接從Try塊或Catch塊跳轉到Finally塊。C#沒有提供類似的語法,可以用以下技巧:

[Visual Basic]

Try

‘一些語句

Exit Try

Finally

‘一些語句

End Try

[C#]

try

{

//一些語句

goto__leave;

}

finally

{

//一些語句

}

__leave://別忘了這里還有哦!

總之是利用了finally塊無法跳過的特征,用goto語句模擬了Exit Try語句。

如果VB程序用的是VB特有的On Error GoTo語句實現的錯誤處理,問題就麻煩了。代碼可能在過程中上下跳躍,無法預料語句的執行方式。這種代碼理解起來就頭痛,更不要說移植了。總體來說,把所有語句統統轉移到try塊中,然后用catch一一處理錯誤。遇到要返回(Resume語句)的時候,只好Copy代碼了。反正不是一件容易的事情,慢慢改就是了。

7、模塊。VB支持模塊,C#不支持。但也沒有關系,只要在C#中制造一個abstract類,共享所有成員,就和模塊一樣了。當然不能像VB一樣直接訪問模塊中的成員,需要用到“類名.成員名”的用法。

8、接口。C#在接口方面也沒有VB強大(怎么這么重要的功能也不做得好一點?),VB采用Implements語句結合接口的成員和類的實現成員,而C#是用名稱結合。因此VB就可以隨便修改實現成員的訪問級別和名稱,而C#就不能改名稱。將C#移植為VB時,最好利用VB.net編輯器直接實現接口,比較簡單。把VB移植為C#時,就必須把改過的名字都改回來,遇到名字沖突就更討厭了(這時候我幾乎不想再移植為C#了)。給一個例子:

[Visual Basic]

Public Class Class1:Implements IMyInterface

Public Sub DoSth()Implements IMyInterface.Method1

End Sub

End Class

[C#]

public class Class1:IMyInterface

{

public void Method1()

{

}

}

9、運算符重載。這會遇到VB頭痛了,既然VB不支持運算符重載,那么就必須用子程序和函數來模擬運算符。比如建立Plus和Minus方法模擬+和-的運算。當然還是有很多情況(比如遇上了explicit和implicit語句)就真的沒有辦法了,只好不移植了。運算符重載是一個很不錯的功能,它能使很多操作簡單地完成,如果VB支持它,就真的是完美語言了。

名稱欄目:vb.net等號 vb中等號的作用
分享URL:http://m.kartarina.com/article36/dodsdpg.html

成都網站建設公司_創新互聯,為您提供營銷型網站建設GoogleChatGPT微信公眾號網頁設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管
主站蜘蛛池模板: 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 亚洲精品久久无码av片俺去也| av无码a在线观看| 亚洲av日韩av无码av| 无码人妻丰满熟妇区五十路| 色视频综合无码一区二区三区| 国产成人无码A区在线观看视频 | 一本一道av中文字幕无码| 亚洲AV永久无码精品成人| 亚洲AV无码AV日韩AV网站| 亚洲午夜国产精品无码| 国产裸模视频免费区无码| 人禽无码视频在线观看| 日韩av无码中文无码电影| 久久精品日韩av无码| 久久av无码专区亚洲av桃花岛 | 日韩AV高清无码| 国产AV无码专区亚洲AV蜜芽 | 亚洲Av无码一区二区二三区 | 无码国产精品一区二区免费模式 | 精品无码人妻一区二区三区 | 精品深夜AV无码一区二区老年| 永久免费无码网站在线观看| 亚洲熟妇无码久久精品| 久久无码AV中文出轨人妻| 一本大道无码av天堂| 97久久精品亚洲中文字幕无码| 2014AV天堂无码一区| 中文无码人妻有码人妻中文字幕| 国产精品国产免费无码专区不卡 | 免费无码精品黄AV电影| 无码成人一区二区| 国产成人无码一区二区在线播放| 亚洲精品无码久久久| 久久国产精品无码网站| 极品粉嫩嫩模大尺度无码视频| 性无码专区一色吊丝中文字幕| 国产午夜鲁丝片AV无码免费| 性无码专区一色吊丝中文字幕| 狠狠躁狠狠躁东京热无码专区 | 无码人妻精品一区二区蜜桃AV|