欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

關(guān)于vb.netfunc的信息

VB.NET 在線程如何返回Function的值?

Thread不會返回值的。你應(yīng)該創(chuàng)建委托的,使用委托的異步方法

在福鼎等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,福鼎網(wǎng)站建設(shè)費用合理。

Dim funcInt32 As Func(Of String, Integer) = AddressOf GetList

Dim s As IAsyncResult = funcInt32.BeginInvoke("(參數(shù))", Nothing, Nothing)

’在要獲得結(jié)果的地方調(diào)用EndInvoke方法結(jié)束異步調(diào)用并獲得結(jié)果。

Dim result As Int32 = funcInt32.EndInvoke(s)

VB.NET 中的Of是什么意思

泛型參數(shù),表示一種特定類型,通常用于集合List, Dictionary之類的。

原型:Dictionary(Of TKey, TValue)

原型不能直接使用,必須給TKey, TValue指定一個類型(Type)

強類型字典:Dictionary(Of String, String)

表示鍵和值都為String類型的字典。

vb.net中的mid()用法

VB.NET編程Mid函數(shù)一般用于返回原字符串中子串,比如說:

Dim?MyString,?FirstWord,?LastWord,?MidWords??

MyString?=?"Mid?Function?Demo"?建立一個字符串。??

FirstWord?=?Mid(MyString,?1,?3)?'?返回?"Mid"。??

LastWord?=?Mid(MyString,?14,?4)?'?返回?"Demo"。??

MidMidWords?=?Mid(MyString,?5)?'?返回?"Funcion

具體函數(shù)說明如下:返回 Variant (String),其中包含字符串中指定數(shù)量的字符。

mid函數(shù)的語法:

Mid(string,?start[,?length])

mid函數(shù)的參數(shù):

string 必要參數(shù)。字符串表達式,從中返回字符。如果 string 包含 Null,將返回 Null;

start 必要參數(shù)。為 Long。string 中被取出部分的字符位置。如果 start 超過 string 的字符數(shù),VB.NET Mid函數(shù)返回零長度字符串 ("");

length 可選參數(shù);為 Variant (Long)。要返回的字符數(shù)。如果省略或 length 超過文本的字符數(shù)(包括 start 處的字符),將返回字符串中從 start 到尾端的所有字符。

VB.NET怎么從一個類中引用其它未實例化的類?

以class2為例,如果你只需要一個class2實例,那么把它在class1成員中聲明為共享成員即可。

Shared c2 As New Class2()

然后調(diào)用它的函數(shù),

c2.func()

如果class2的這個函數(shù)不依賴于class2實例,那么直接將這個函數(shù)用Shared聲明,

Public Shared Function func() As xxx

'xxxxx

End Function

然后在class1中引入,

Imports class2

直接調(diào)用即可。

func()

我想第二種更符合你的情況。

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

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

一、C#

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

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

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

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

開發(fā)強壯和可重用的軟件

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

二、VB.NET

--- 完全面向?qū)ο蟮腂ASIC語言

1.新語言特性

完全面向?qū)ο蟥C 繼承(Inheritance), 重載(overloading), 共享的成員, 結(jié)構(gòu)化異常處理

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

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

2.與VB6一致的語法

三、2者的區(qū)別?

1.語法上的差異

例如循環(huán)的寫法

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 不具有的特性

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

重載操作符

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

更豐富的語法: Events, Try…Catch, Select…Case, 實現(xiàn) Interface

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

后臺編譯

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

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

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

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

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

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

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

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

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

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

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

用別的方法實現(xiàn)

ByVal

ByRef

ref

Optional

ParamArray

params

無法實現(xiàn)

unsafe

無法實現(xiàn)

fixed

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

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

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

public delegate void FuncType(Object e)

...

FuncType func;

func=new FuncType(this.SampleFunction1);

//調(diào)用

func(something);

//換指向另外一個函數(shù)

func=this.SampleFunction2

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

Public Delegate Sub FuncType(ByVal eAs Object)

...

Dim func As FuncType

func=New FuncType(AddressOf Me.SampleFunc1)

‘調(diào)用

func.Invoke(something)

‘換指向另外一個函數(shù)

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)

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

關(guān)于事件響應(yīng),C#與Delphi等語言一樣,是動態(tài)綁定事件過程的,其語法類似于下:

internal MyClass myobj;

...

myobj=new MyClass();

...

myobj.MyEvent+=this.myobj_MyEvent;

...

protected void myobj_MyEvent(Object sender,EventArgs e)

{

//語句

}

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

AddHandler myobj.MyEvent,AddressOf Me.myobj_MyEvent

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

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

‘定義變量時使用WithEvents關(guān)鍵字

Friend WithEvents myobj As MyClass

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

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

Handles myobj.MyEvent

‘語句

End Sub

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

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

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

==

myobj1.MyEvent+=this.XXX;

myobj2.MyEvent+=this.XXX;

...

protected void XXX(...){}

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

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

Try

‘發(fā)生錯誤的代碼

Catch When Err.Number=52

‘解決錯誤的代碼

End Try

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

VB支持Exit Try語句,可以直接從Try塊或Catch塊跳轉(zhuǎn)到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語句實現(xiàn)的錯誤處理,問題就麻煩了。代碼可能在過程中上下跳躍,無法預(yù)料語句的執(zhí)行方式。這種代碼理解起來就頭痛,更不要說移植了??傮w來說,把所有語句統(tǒng)統(tǒng)轉(zhuǎn)移到try塊中,然后用catch一一處理錯誤。遇到要返回(Resume語句)的時候,只好Copy代碼了。反正不是一件容易的事情,慢慢改就是了。

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

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

[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不支持運算符重載,那么就必須用子程序和函數(shù)來模擬運算符。比如建立Plus和Minus方法模擬+和-的運算。當(dāng)然還是有很多情況(比如遇上了explicit和implicit語句)就真的沒有辦法了,只好不移植了。運算符重載是一個很不錯的功能,它能使很多操作簡單地完成,如果VB支持它,就真的是完美語言了。

VB中如何獲取當(dāng)前程序的絕對路徑

System.Environment.CurrentDirectory;

//例:?c:/test/

Application.ExecutablePath;(包括名稱)

//例:?c:/test/myapp.exe

Application.StartupPath;(不包括名稱)

//例:?c:/test/

絕對路徑是直接到達目標(biāo)位置,通常是從盤符開始的路徑。完整的描述文件位置的路徑就是絕對路徑,以web站點根目錄為參考基礎(chǔ)的目錄路徑。

絕對路徑名的指定是從樹型目錄結(jié)構(gòu)頂部的根目錄開始到某個目錄或文件的路徑,由一系列連續(xù)的目錄組成,中間用斜線分隔,直到要指定的目錄或文件,路徑中的最后一個名稱即為要指向的目錄或文件。之所以稱為絕對,意指當(dāng)所有網(wǎng)頁引用同一個文件時,所使用的路徑都是一樣的。

擴展資料

幾種編程語言獲取程序所在路徑的方法:

1、在golang程序里面獲取程序所在路徑:

package main

import (

"path/filepath"

"os"

"fmt"

"log"

)

func main() {

execDir, err := filepath.Abs(filepath.Dir(os.Args[0]))

if err = nil {

log.Fatal(err)

}fmt.Println(execDir)

}

2、python腳本所在路徑:

import os

print(os.path.split(os.path.realpath(__file__))[0])

3、shell腳本獲取腳本的絕對路徑:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" pwd )"

網(wǎng)站欄目:關(guān)于vb.netfunc的信息
網(wǎng)站URL:http://aaarwkj.com/article14/dssjede.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、定制網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站設(shè)計公司、網(wǎng)站制作、定制開發(fā)

廣告

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

網(wǎng)站優(yōu)化排名
欧美亚洲国产日韩另类| 97精品在线免费视频| 国产三级黄色大片在线免费看| 变态另类日韩欧美高清| 日本中文字幕免费专区| 亚洲欧美成人免费视频| 亚洲香蕉一区二区免费| 日韩一二卡在线观看视频| 久久精品亚洲毛片美女极品| 亚洲精品一区二区99| 国产a级一区二区三区| 日本午夜福利久久久| 日韩欧美精品在线观看免费| 日本成人大片在线观看| 肥臀大屁股av在线播放| 日本免费一区二区三区等视频| 内射极品美女在线观看| 国产av蜜臀一区二区三区| 青草草草草草在线观看| 在线观看后入大屁股| 真实夫妻露脸爱视频九色网| av免费在线观看大全| 亚洲激情一区在线观看| 日韩电影中文字幕一区| 久碰精品少妇中文字幕av| 日韩成人一级片在线观看| 国产精品毛片一区二区三| 中文字幕一区二区av| 日本高清一区二区网站| 福利在线午夜绝顶三级| 丰满人妻被猛烈进入中文版| 色吊丝二区三区中文字幕| av免费在线不卡一区| 亚洲国产成人久久综合区| 午夜福利视频一区久久久| 东京热一区二区电影| 黄色av在线免费观看| 中文字幕国产成人在线视频| 中文字幕五月婷婷免费| 日本韩国黄色三级三级| 亚洲另类视频一区二区|