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

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

vb.net枚舉的作用,vb枚舉法

C#用接口可以定義哪些類型?定義方式怎么寫?

Class,一個繼承他的類叫subClass,那么subClass也算是baseClass類型的,可以有這樣的寫法baseClass bc=new subClass()

創(chuàng)新互聯建站專注于企業(yè)全網整合營銷推廣、網站重做改版、沐川網站定制設計、自適應品牌網站建設、H5技術、成都商城網站開發(fā)、集團公司官網建設、外貿網站制作、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為沐川等各大城市提供網站開發(fā)制作服務。

接口也是一樣,如果一個類MyClass實現了借口一個接口interfaceClass,你事實上可以把MyClass叫做interfaceClass的子類,可以有這樣的寫法interfaceClass ic=new MyClass()

這就是所說的多態(tài)的一部分基礎。可以舉個實在點的例子,比如你想寫一個方法叫EnumAll,參數是一個類的實例,作用是例舉出該實例中的每個子元素并打印出元素的ToString(如窗體的子元素是窗體中的控件,數組的子元素就不用說了吧),你就遇到兩個問題

首先EnumAll參數的類型是什么。參數應該可以是一個Form類型,因為窗口中有很多控件,使用EnumAll和一個Form的實例做參數可以打印出包含在該參數窗體中的每個控件的名字;但是一個數組Object[]類型應該也可以使用EnumAll方法,EnumAll可以列舉Object[]中的每個元素并打印。你是要把方法寫成void EnumAll(Form e)還是寫成void EnumAll(Object[] e)?

然后就是EnumAll怎樣實現才能得到不同類型的實例的子元素?如果是void EnumAll(Form e)的形式,要想得到子元素要用

foreach(Control c in e.Controls)

{

Console.WriteLine(c.ToString());

}

的寫法,如果數組要用

for(int i=0;ie.length;++i)

{

Console.WriteLine(e[i].ToString());

}

的實現方法。

Form和Object[]是兩種完全不沾邊的類型,那么EnumAll到底該怎么寫?

這時就可以使用接口,可以定義一個接口

interface IEnumable

{

Object next();//返回下一個子元素的方法

}

然后使Form和Object[]類型都實現IEnumable接口(實現方法是不同的,如前面所說),然后這樣寫EnumAll方法:

void EnumAll(IEnumable e)//一開始就說了,實現接口的類都可以算是接口的子類

{Object o;

while((o=e.next)!=null)

{

Console.WriteLine(o.ToString());

}

}

于是解決了上面的問題。

不知道有沒有說清楚,如果理解了上面舉的例子算是初步了解接口了,接口的多繼承和多態(tài)性還有很多內容。

另外,上面的東西只是舉例子,雖然C#中確實有IEnumable接口,但其定義要復雜的多,我只是舉個簡化的自己編的例子^_^。C#的(應該說是FCL吧)很多類都實現了IEnumalbe接口,像集合類和數組等。

FCL是.NET框架類庫,Framework Class Library,不論在C#,J#,VB.NET或其他.NET開發(fā)語言中使用的.NET提供的類都是FCL中的類,就是說,.NET的開發(fā)其實是和語言無關的。不同語言編寫的程序由于使用同一類庫(其實等于被翻譯成了同一種中間語言,Common Intermediate Language, CIL),使得各種不同語言寫的程序集可以通用。

VB高手進,用VB實現bat文件的net use那樣的功能

WNetAddConnection 創(chuàng)建同一個網絡資源的永久性連接

WNetAddConnection2 創(chuàng)建同一個網絡資源的連接

WNetAddConnection3 創(chuàng)建同一個網絡資源的連接

WNetCancelConnection 結束一個網絡連接

WNetCancelConnection2 結束一個網絡連接

WNetCloseEnum 結束一次枚舉操作

WNetConnectionDialog 啟動一個標準對話框,以便建立同網絡資源的連接

WNetDisconnectDialog 啟動一個標準對話框,以便斷開同網絡資源的連接

WNetEnumResource 枚舉網絡資源

WNetGetConnection 獲取本地或已連接的一個資源的網絡名稱

WNetGetLastError 獲取網絡錯誤的擴展錯誤信息

WNetGetUniversalName 獲取網絡中一個文件的遠程名稱以及/或者UNC(統(tǒng)一命名規(guī)范)名稱

WNetGetUser 獲取一個網絡資源用以連接的名字

WNetOpenEnum 啟動對網絡資源進行枚舉的過程

1.WNetAddConnection

VB聲明

Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long

說明

創(chuàng)建同一個網絡資源的永久性連接

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

lpszNetPath String,要連接的網絡名

lpszPassword String,可選的一個密碼。如為vbNullString,表示采用當前用戶的默認密碼。如為一個空字串,則不用任何密碼

lpszLocalName String,資源的本地名稱。(例如,F: 和 LPT1:)

2.WNetAddConnection2

VB聲明

Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long

說明

創(chuàng)建同一個網絡資源的連接

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

lpNetResource NETRESOURCE,在這個結構中設置了下述字段,對要連接的網絡資源進行了定義:dwType, lpLocalName (可為 vbNullString), lpRemoteName, lpProvider (設為 vbNullString 表示用默認提供者)。該結構的其他所有變量都會被忽略

lpPassword String,可選的一個密碼。如為vbNullString,表示采用當前用戶的默認密碼。如為一個空字串,則不用任何密碼

lpUserName String,用于連接的用戶名。如為vbNullString,表示使用當前用戶

dwFlags Long,設為零;或指定常數CONNECT_UPDATE_PROFILE,表示創(chuàng)建永久性連接

3.WNetAddConnection3

VB聲明

Declare Function WNetAddConnection3 Lib "mpr.dll" Alias "WNetAddConnection3A" (ByVal hwnd As Long, lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long)

說明

創(chuàng)建同一個網絡資源的連接。這個函數與WNetAddConnection2類似,只是它允許我們?yōu)檫@個函數顯示的對話框指定一個物主窗口

返回值

Long,

參數表

參數 類型及說明

hwnd Long,指定一個窗口句柄,用作本函數創(chuàng)建的對話框的父窗口

lpNetResource NETRESOURCE,在這個結構中設置了下述字段,對要連接的網絡資源進行了定義:dwType, lpLocalName (可為 vbNullString), lpRemoteName, lpProvider (設為 vbNullString 表示用默認提供者)。該結構的其他所有變量都會被忽略

lpPassword String,可選的一個密碼。如為vbNullString,表示采用當前用戶的默認密碼。如為一個空字串,則不用任何密碼

lpUserName String,用于連接的用戶名。如為vbNullString,表示使用當前用戶

dwFlags Long,設為零;或指定常數CONNECT_UPDATE_PROFILE,表示創(chuàng)建永久性連接

4.WNetCancelConnection

VB聲明

Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long

說明

結束一個網絡連接

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

lpszName String,已連接資源的遠程名稱或本地名稱

bForce Long,如為TRUE,表示斷開連接(即使連接的資源上正有打開的文件或作業(yè))

5.WNetCancelConnection2

VB聲明

Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long

說明

結束一個網絡連接

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

lpszName String,已連接資源的遠程名稱或本地名稱

dwFlags Long,設為零或CONNECT_UPDATE_PROFILE。如為零,而且建立的是永久性連接,則在windows下次重新啟動時仍會重新連接

fForce Long,如為TRUE,表示強制斷開連接(即使連接的資源上正有打開的文件或作業(yè))

6.WNetCloseEnum

VB聲明

Declare Function WNetCloseEnum Lib "mpr.dll" Alias "WNetCloseEnum" (ByVal hEnum As Long) As Long

說明

結束一次枚舉操作

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

hEnum Long,由 WNetOpenEnum函數返回的一個枚舉句柄

7.WNetConnectionDialog

VB聲明

Declare Function WNetConnectionDialog Lib "mpr.dll" Alias "WNetConnectionDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long

說明

啟動一個標準對話框,以便建立同網絡資源的連接

返回值

Long,零表示成功。如用戶取消了操作,則返回-1。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

hwnd Long,指定要成為對話框父窗口的一個窗口的句柄

dwType Long,設成RESOURCETYPE_DISK,瀏覽磁盤資源

8.WNetDisconnectDialog

VB聲明

Declare Function WNetDisconnectDialog Lib "mpr.dll" Alias "WNetDisconnectDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long

說明

啟動一個標準對話框,以便斷開同網絡資源的連接

返回值

Long,零表示成功。如用戶取消了操作,則返回-1。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

hwnd Long,指定要成為對話框父窗口的一個窗口的句柄

dwType Long,設成RESOURCETYPE_DISK 或 RESOURCETYPE_PRINT,決定要斷開的是磁盤還是打印機資源

9.WNetEnumResource

VB聲明

Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As Any, lpBufferSize As Long) As Long

說明

枚舉網絡資源

返回值

Long,零表示成功。ERROR_NO_MORE_ITEMS表示不剩下可以枚舉的條目。ERROR_MORE_DATA表示條目不能裝入lpBuffer。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

hEnum Long,從WNetOpenEnum函數返回的一個句柄

lpcCount Long,最初設為要枚舉的最大資源數量;或設為-1,表示枚舉盡可能多的資源。一旦返回,就會設為實際枚舉的資源數量

lpBuffer Any,通常是一個字節(jié)緩沖區(qū)的首字節(jié)。該緩沖區(qū)裝載了枚舉信息(可按引用聲明為Byte)

lpBufferSize Long,以字節(jié)為單位指定lpBuffer數組的長度。如緩沖區(qū)不夠大,則設為需要的緩沖區(qū)長度

注解

枚舉網絡條目時,最好用vb一次枚舉一個資源。盡量不要使用這個函數同時枚舉許多網絡資源的功能

10.WNetGetConnection

VB聲明

Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long

說明

獲取本地或已連接的一個資源的網絡名稱

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

lpszLocalName String,本地設備的名字

lpszRemoteName String,指定一個字串緩沖區(qū),用于裝載設備的資源名稱

cbRemoteName Long,lpszRemoteName緩沖區(qū)的字符數量。如緩沖區(qū)不夠大,則設為需要的緩沖區(qū)長度

11.WNetGetLastError

VB聲明

Declare Function WNetGetLastError Lib "mpr.dll" Alias "WNetGetLastErrorA" (lpError As Long, ByVal lpErrorBuf As String, ByVal nErrorBufSize As Long, ByVal lpNameBuf As String, ByVal nNameBufSize As Long) As Long

說明

獲取網絡錯誤的擴展錯誤信息

返回值

Long,零表示成功。ERROR_INVALID_ADDRESS表示緩沖區(qū)無效

參數表

參數 類型及說明

lpError Long,指定一個變量,用于裝載網絡錯誤代碼。具體的代碼由網絡供應商決定

lpErrorBuf String,指定一個字串緩沖區(qū),用于裝載網絡錯誤的說明

nErrorBufSize Long,lpErrorBuf緩沖區(qū)包含的字符數量

lpNameBuf String,用于裝載網絡供應商名字的字串緩沖區(qū)

nNameBufSize Long,lpNameBuf緩沖區(qū)的字符數量

12.WNetGetUniversalName

VB聲明

Declare Function WNetGetUniversalName Lib "mpr" Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As Long, lpBuffer As Any, lpBufferSize As Long) As Long

說明

獲取網絡中一個文件的遠程名稱以及/或者UNC(統(tǒng)一命名規(guī)范)名稱。例如,假設一個已連接的遠程驅動器是\\othersystem\CDrive,它對應的本地驅動器是F:,而且在它的子目錄temp中包含了文件xyz.doc。那么運算結果如下:LocalPath xyz.doc 或 f:\temp\xyz.doc(或者文件的任何相對路徑名)

UNC 名稱: \\othersystem\CDrive\temp\xyz.doc

連接名稱: \\othersystem\CDrive

剩余名稱: \temp\xyz.doc

它們分別對應于由這個函數裝載的REMOTE_NAME_INFO結構的字段,對該結構的定義如下:

Type REMOTE_NAME_INFO

pUniversalName As Long

pConnectionName As Long

pRemainingPath As Long

End Type

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

lpLocalPath String,磁盤文件的名字

dwInfoLevel Long,下述常數之一:

UNIVERSAL_NAME_INFO_LEVEL 只設置pUniversalName字段

REMOTE_NAME_INFO_LEVEL 設置REMOTE_NAME_INFO結構中的所有三個字段

lpBuffer Any,指定用于裝載UNC信息的一個緩沖區(qū)。緩沖區(qū)起點與一個REMOTE_NAME_INFO結構對應

lpBufferSize Long,以字節(jié)為單位指定lpBuffer緩沖區(qū)的長度。如緩沖區(qū)不夠大,則設為需要的緩沖區(qū)長度

13.WNetGetUser

VB聲明

Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long

說明

獲取一個網絡資源用以連接的名字

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

lpName String,指定已連接資源的遠程名稱或本地名稱。用vbNullString獲取當前用戶的名字

lpUserName String,用于裝載用戶名的一個字串緩沖區(qū)

lpnLength Long,lpUserName緩沖區(qū)的長度。如緩沖區(qū)不夠大,則自動設為需要的緩沖區(qū)長度

14.WNetOpenEnum

VB聲明

Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As NETRESOURCE, lphEnum As Long) As Long

說明

啟動對網絡資源進行枚舉的過程。這個函數會返回由WNetEnumResource函數用于枚舉資源所用的一個句柄

返回值

Long,零表示成功。會設置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,則可用WNetGetLastError取得額外的錯誤信息

參數表

參數 類型及說明

dwScope Long,指定要枚舉的資源范圍??稍O為下述常數之一:

RESOURCE_CONNECTED 枚舉已連接的資源(忽略dwUsage)

RESOURCE_GLOBALNET 枚舉所有資源

RESOURCE_REMEMBERED 只枚舉永久性連接

dwType Long,下述常數之一

RESOURCE_ANY 枚舉所有類型的網絡資源

RESOURCE_DISK 枚舉磁盤資源

RESOURCE_PRINT 枚舉打印資源

dwUsage Long,可設為零,表示枚舉所有資源;或設為下述常數的一個或兩個:

RESOURCEUSAGE_CONNECTABLE 只枚舉那些能夠連接的資源

RESOURCEUSAGE_CONTAINER 只枚舉包含了其他資源的資源

lpNetResource NETRESOURCE,這個結構指定了一個容器資源。該函數會枚舉包含于這里指定的某個指定資源內的資源。如設為NULL(把聲明變成ByVal As Long),那么函數會枚舉頂級網絡資源。倘若在dwScope參數里沒有指定RESOURCE_GLOBALNET,那么必須為NULL

lphEnum Long,指定一個變量,用于裝載一個枚舉句柄。該句柄由WNetEnumResource函數使用。必須用WNetCloseEnum函數將其清除

集合已修改;枚舉操作可能不會執(zhí)行。

C#(C-Sharp)是Microsoft的新編程語言,被譽為“C/C++家族中第一種面向組件的語言”。然而,不管它自己宣稱的是什么,許多人認為C#更像是Java的一種克隆,或者是Microsoft用來替代Java的產品。事實是否是這樣的呢?

本文的比較結果表明,C#不止是Java的同胞那么簡單。如果你是一個Java開發(fā)者,想要學習C#或者了解更多有關C#的知識,那么本文就是你必須把最初10分鐘投入于其中的所在。

一、C#、C++和Java

C#的語言規(guī)范由Microsoft的Anders Hejlsberg與Scott Wiltamuth編寫。在當前Microsoft天花亂墜的宣傳中,對C#和C++、Java作一番比較總是很有趣的??紤]到當前IT媒體的輿論傾向,如果你早就知道C#更接近Java而不是C++,事情也不值得大驚小怪。對于剛剛加入這場討論的讀者,下面的表1讓你自己作出判斷。顯然,結論應該是:Java和C#雖然不是孿生子,但C#最主要的特色卻更接近Java而不是C++。

表1:比較C#、C++和Java最重要的功能

功能 C# C++ Java

繼承 允許繼承單個類,允許實現多個接口 允許從多個類繼承 允許繼承單個類,允許實現多個接口

接口實現 通過“interface”關鍵詞 通過抽象類 通過“interface”關鍵詞

內存管理 由運行時環(huán)境管理,使用垃圾收集器 需要手工管理 由運行時環(huán)境管理,使用垃圾收集器

指針 支持,但只在很少使用的非安全模式下才支持。通常以引用取代指針 支持,一種很常用的功能。 完全不支持。代之以引用。

源代碼編譯后的形式 .NET中間語言(IL) 可執(zhí)行代碼 字節(jié)碼

單一的公共基類 是 否 是

異常處理 異常處理 返回錯誤 異常處理。

了解表1總結的重要語言功能之后,請繼續(xù)往下閱讀,了解C#和Java的一些重要區(qū)別。

二、語言規(guī)范的比較

2.1、簡單數據類型

簡單數據類型(Primitive)在C#中稱為值類型,C#預定義的簡單數據類型比Java多。例如,C#有unit,即無符號整數。表2列出了所有C#的預定義數據類型:

表2:C#中的值類型

類型 說明

object 所有類型的最終極的基類

string 字符串類型;字符串是一個Unicode字符的序列

sbyte 8位帶符號整數

short 16位帶符號整數

int 32位帶符號整數

long 64位帶符號整數

byte 8位無符號整數

ushort 16位無符號整數

uint 32位無符號整數

ulong 64位無符號整數

float 單精度浮點數類型

double 雙精度浮點數類型

bool 布爾類型;bool值或者是true,或者是false

char 字符類型;一個char值即是一個Unicode字符

decimal 有28位有效數字的高精度小數類型

2.2、常量

忘掉Java中的static final修飾符。在C#中,常量可以用const關鍵詞聲明。

public const int x = 55;

此外,C#的設計者還增加了readonly關鍵詞。如果編譯器編譯時未能確定常量值,你可以使用readonly關鍵詞。readonly域只能通過初始化器或類的構造函數設置。

2.3、公用類的入口點

在Java中,公用類的入口點是一個名為main的公用靜態(tài)方法。main方法的參數是String對象數組,它沒有返回值。在C#中,main方法變成了公用靜態(tài)方法Main(大寫的M),Main方法的參數也是一個String對象數組,而且也沒有返回值,如下面的原型聲明所示:

public static void Main(String[] args)

但是,C#的Main方法不局限于此。如果不向Main方法傳遞任何參數,你可以使用上述Main方法的一個重載版本,即不帶參數列表的版本。也就是說,下面的Main方法也是一個合法的入口點:

public static void Main()

另外,如果你認為有必要的話,Main方法還可以返回一個int。例如,下面代碼中的Main方法返回1:

using System;

public class Hello {

public static int Main() {

Console.WriteLine("Done");

return 1;

}

}

與此相對,在Java中重載main方法是不合法的。

2.4、switch語句

在Java中,switch語句只能處理整數。但C#中的switch語句不同,它還能夠處理字符變量。請考慮下面用switch語句處理字符串變量的C#代碼:

using System;

public class Hello {

public static void Main(String[] args) {

switch (args[0]) {

case "老板":

Console.WriteLine("早上好!我們隨時準備為您效勞!");

break;

case "雇員":

Console.WriteLine("早上好!你可以開始工作了!");

break;

default:

Console.WriteLine("早上好!祝你好運!");

break;

}

}

}

與Java中的switch不同,C#的switch語句要求每一個case塊或者在塊的末尾提供一個break語句,或者用goto轉到switch內的其他case標簽。

2.5、foreach語句

foreach語句枚舉集合中的各個元素,為集合中的每一個元素執(zhí)行一次代碼塊。請參見下面的例子。

using System;

public class Hello {

public static void Main(String[] args) {

foreach (String arg in args)

Console.WriteLine(arg);

}

}

如果在運行這個執(zhí)行文件的時候指定了參數,比如“Hello Peter Kevin Richard”,則程序的輸出將是下面幾行文字:

Peter

Kevin

Richard

2.6、C#沒有移位操作符

C#支持uint和ulong之類的無符號變量類型。因此,在C#中,右移操作符(即“”)對于無符號變量類型和帶符號變量類型(比如int和long)的處理方式不同。右移uint和ulong丟棄低位并把空出的高位設置為零;但對于int和long類型的變量,“”操作符丟棄低位,同時,只有當變量值是正數時,“”才把空出的高位設置成零;如果“”操作的是一個負數,空出的高位被設置成為1。

Java中不存在無符號的變量類型。因此,我們用“”操作符在右移時引入負號位;否則,使用“”操作符。

2.7、goto關鍵詞

Java不用goto關鍵詞。在C#中,goto允許你轉到指定的標簽。不過,C#以特別謹慎的態(tài)度對待goto,比如它不允許goto轉入到語句塊的內部。在Java中,你可以用帶標簽的語句加上break或continue取代C#中的goto。

2.8、聲明數組

在Java中,數組的聲明方法非常靈活,實際上有許多種聲明方法都屬于合法的方法。例如,下面的幾行代碼是等價的:

int[] x = { 0, 1, 2, 3 };

int x[] = { 0, 1, 2, 3 };

但在C#中,只有第一行代碼合法,[]不能放到變量名字之后。

2.9、包

在C#中,包(Package)被稱為名稱空間。把名稱空間引入C#程序的關鍵詞是“using”。例如,“using System;”這個語句引入了System名稱空間。

然而,與Java不同的是,C#允許為名稱空間或者名稱空間中的類指定別名:

using TheConsole = System.Console;

public class Hello {

public static void Main() {

TheConsole.WriteLine("使用別名");

}

}

雖然從概念上看,Java的包類似于.NET的名稱空間。然而,兩者的實現方式不同。在Java中,包的名字同時也是實際存在的實體,它決定了放置.java文件的目錄結構。在C#校?錮淼陌?吐嘸?拿?浦?涫峭耆?擲氳模?簿褪撬擔??瓶占淶拿?植換岫暈錮淼拇虬?絞講??魏斡跋臁T贑#中,每一個源代碼文件可以從屬于多個名稱空間,而且它可以容納多個公共類。

.NET中包的實體稱為程序集(Assembly)。每一個程序集包含一個manifest結構。manifest列舉程序集所包含的文件,控制哪些類型和資源被顯露到程序集之外,并把對這些類型和資源的引用映射到包含這些類型與資源的文件。程序集是自包含的,一個程序集可以放置到單一的文件之內,也可以分割成多個文件。.NET的這種封裝機制解決了DLL文件所面臨的問題,即臭名昭著的DLL Hell問題。

2.10、默認包

在Java中,java.lang包是默認的包,它無需顯式導入就已經自動包含。例如,要把一些文本輸出到控制臺,你可以使用下面的代碼:

System.out.println("Hello world from Java");

C#中不存在默認的包。如果要向控制臺輸出文本,你使用System名稱空間Console對象的WriteLine方法。但是,你必須顯式導入所有的類。代碼如下:

using System;

public class Hello {

public static void Main() {

Console.WriteLine("Hello world from C#");

}

}

2.11、面向對象

Java和C#都是完全面向對象的語言。在面向對象編程的三大原則方面,這兩種語言接近得不能再接近。

繼承:這兩種語言都支持類的單一繼承,但類可以實現多個接口。所有類都從一個公共的基類繼承。

封裝與可見性:無論是在Java還是C#中,你都可以決定類成員是否可見。除了C#的internal訪問修飾符之外,兩者的可見性機制非常相似。

多態(tài)性:Java和C#都支持某些形式的多態(tài)性機制,且兩者實現方法非常類似。

2.12、可訪問性

類的每個成員都有特定類型的可訪問性。C#中的訪問修飾符與Java中的基本對應,但多出了一個internal。簡而言之,C#有5種類型的可訪問性,如下所示:

public:成員可以從任何代碼訪問。

protected:成員只能從派生類訪問。

internal:成員只能從同一程序集的內部訪問。

protected internal:成員只能從同一程序集內的派生類訪問。

private:成員只能在當前類的內部訪問。

2.13、派生類

在Java中,我們用關鍵詞“extends”實現繼承。C#采用了C++的類派生語法。例如,下面的代碼顯示了如何派生父類Control從而創(chuàng)建出新類Button:

public class Button: Control { . . }

2.14、最終類

由于C#中不存在final關鍵詞,如果想要某個類不再被派生,你可以使用sealed關鍵詞,如下例所示:

sealed class FinalClass { . . }

2.15、接口

接口這個概念在C#和Java中非常相似。接口的關鍵詞是interface,一個接口可以擴展一個或者多個其他接口。按照慣例,接口的名字以大寫字母“I”開頭。下面的代碼是C#接口的一個例子,它與Java中的接口完全一樣:

interface IShape { void Draw(); }

擴展接口的語法與擴展類的語法一樣。例如,下例的IRectangularShape接口擴展IShape接口(即,從IShape接口派生出IRectangularShape接口)。

interface IRectangularShape: IShape { int GetWidth(); }

如果你從兩個或者兩個以上的接口派生,父接口的名字列表用逗號分隔,如下面的代碼所示:

interface INewInterface: IParent1, IParent2 { }

然而,與Java不同,C#中的接口不能包含域(Field)。

另外還要注意,在C#中,接口內的所有方法默認都是公用方法。在Java中,方法聲明可以帶有public修飾符(即使這并非必要),但在C#中,顯式為接口的方法指定public修飾符是非法的。例如,下面的C#接口將產生一個編譯錯誤。

interface IShape { public void Draw(); }

2.16、is和as操作符

C#中的is操作符與Java中的instanceof操作符一樣,兩者都可以用來測試某個對象的實例是否屬于特定的類型。在Java中沒有與C#中的as操作符等價的操作符。as操作符與is操作符非常相似,但它更富有“進取心”:如果類型正確的話,as操作符會嘗試把被測試的對象引用轉換成目標類型;否則,它把變量引用設置成null。

為正確理解as操作符,首先請考慮下面這個例子中is操作符的運用。這個例子包含一個IShape接口,以及兩個實現了IShape接口的類Rectangle和Circle。

using System;

interface IShape {

void draw();

}

public class Rectangle: IShape {

public void draw() {

}

public int GetWidth() {

return 6;

}

}

public class Circle: IShape {

public void draw() {

}

public int GetRadius() {

return 5;

}

}

public class LetsDraw {

public static void Main(String[] args) {

IShape shape = null;

if (args[0] == "rectangle") {

shape = new Rectangle();

}

else if (args[0] == "circle") {

shape = new Circle();

}

if (shape is Rectangle) {

Rectangle rectangle = (Rectangle) shape;

Console.WriteLine("Width : " + rectangle.GetWidth());

}

if (shape is Circle) {

Circle circle = (Circle) shape;

Console.WriteLine("Radius : " + circle.GetRadius());

}

}

}

編譯好代碼之后,用戶可以輸入“rectangle”或者“circle”作為Main方法的參數。如果用戶輸入的是“circle”,則shape被實例化成為一個Circle類型的對象;反之,如果用戶輸入的是“rectangle”,則shape被實例化成為Rectangle類型的對象。隨后,程序用is操作符測試shape的變量類型:如果shape是一個矩形,則shape被轉換成為Rectangle對象,我們調用它的GetWidth方法;如果shape是一個圓,則shape被轉換成為一個Circle對象,我們調用它的GetRadius方法。

如果使用as操作符,則上述代碼可以改成如下形式:

using System;

interface IShape {

void draw();

}

public class Rectangle: IShape {

public void draw() {

}

public int GetWidth() {

return 6;

}

}

public class Circle: IShape {

public void draw() {

}

public int GetRadius() {

return 5;

}

}

public class LetsDraw {

public static void Main(String[] args) {

IShape shape = null;

if (args[0] == "rectangle") {

shape = new Rectangle();

}

else if (args[0] == "circle") {

shape = new Circle();

}

Rectangle rectangle = shape as Rectangle;

if (rectangle != null) {

Console.WriteLine("Width : " + rectangle.GetWidth());

}

else {

Circle circle = shape as Circle;

if (circle != null)

Console.WriteLine("Radius : " + circle.GetRadius());

}

}

}

在上面代碼的粗體部分中,我們在沒有測試shape對象類型的情況下,就用as操作符把shape轉換成Rectangle類型的對象。如果shape正好是一個Rectangle,則shape被轉換成為Rectangle類型的對象并保存到rectangle變量,然后我們調用它的GetWidth方法。如果這種轉換失敗,則我們進行第二次嘗試。這一次,shape被轉換成為Circle類型的對象并保存到circle變量。如果shape確實是一個Circle對象,則circle現在引用了一個Circle對象,我們調用它的GetRadius方法。

2.17、庫

C#沒有自己的類庫。但是,C#共享了.NET的類庫。當然,.NET類庫也可以用于其他.NET語言,比如VB.NET或者JScript.NET。值得一提的是StringBuilder類,它是對String類的補充。StringBuilder類與Java的StringBuffer類非常相似。

2.18、垃圾收集

C++已經讓我們認識到手工管理內存是多么缺乏效率和浪費時間。當你在C++中創(chuàng)建了一個對象,你就必須手工地拆除這個對象。代碼越復雜,這個任務也越困難。Java用垃圾收集器來解決這個問題,由垃圾收集器搜集不再使用的對象并釋放內存。C#同樣采用了這種方法。應該說,如果你也在開發(fā)一種新的OOP語言,追隨這條道路是一種非常自然的選擇。C#仍舊保留了C++的內存手工管理方法,它適合在速度極端重要的場合使用,而在Java中這是不允許的。

2.19、異常處理

如果你聽說C#使用與Java相似的異常處理機制,你不會為此而驚訝,對吧?在C#中,所有的異常都從一個名為Exception的類派生(聽起來很熟悉?)另外,正如在Java中一樣,你還有熟悉的try和catch語句。Exception類屬于.NET System名稱空間的一部分。

三、Java沒有的功能

C#出生在Java成熟之后,因此,C#擁有一些Java(目前)還沒有的絕妙功能也就不足為奇。

3.1、枚舉器

枚舉器即enum類型(Enumerator,或稱為計數器),它是一個相關常量的集合。精確地說,enum類型聲明為一組相關的符號常量定義了一個類型名字。例如,你可以創(chuàng)建一個名為Fruit(水果)的枚舉器,把它作為一個變量值的類型使用,從而把變量可能的取值范圍限制為枚舉器中出現的值。

public class Demo {

public enum Fruit {

Apple, Banana, Cherry, Durian

}

public void Process(Fruit fruit) {

switch (fruit) {

case Fruit.Apple:

...

break;

case Fruit.Banana:

...

break;

case Fruit.Cherry:

...

break;

case Fruit.Durian:

...

break;

}

}

}

在上例的Process方法中,雖然你可以用int作為myVar變量的類型,但是,使用枚舉器Fruit之后,變量的取值范圍限制到了Applet、Banana、Cherry和Durian這幾個值之內。與int相比,enum的可讀性更好,自我說明能力更強。

3.2、結構

結構(Struct)與類很相似。然而,類是作為一種引用類型在堆中創(chuàng)建,而結構是一種值類型,它存儲在棧中或者是嵌入式的。因此,只要謹慎運用,結構要比類快。結構可以實現接口,可以象類一樣擁有成員,但結構不支持繼承。

然而,簡單地用結構來取代類可能導致慘重損失。這是因為,結構是以值的方式傳遞,由于這種傳遞方式要把值復制到新的位置,所以傳遞一個“肥胖的”結構需要較大的開銷。而對于類,傳遞的時候只需傳遞它的引用。

下面是一個結構的例子。注意它與類非常相似,只要把單詞“struct”替換成“class”,你就得到了一個類。

struct Point {

public int x, y;

public Point(int x, int y) {

this.x = x;

this.y = y;

}

}

3.3、屬性

C#類除了可以擁有域(Field)之外,它還可以擁有屬性(Property)。屬性是一個與類或對象關聯的命名的特征。屬性是域的一種自然擴展――兩者都是有類型、有名字的類成員。然而,和域不同的是,屬性不表示存儲位置;相反,屬性擁有存取器(accessor),存取器定義了讀取或者寫入屬性值時必須執(zhí)行的代碼。因此,屬性提供了一種把動作和讀取、寫入對象屬性值的操作關聯起來的機制,而且它們允許屬性值通過計算得到。

在C#中,屬性通過屬性聲明語法定義。屬性聲明語法的第一部分與域聲明很相似,第二部分包括一個set過程和/或一個get過程。例如,在下面的例子中,PropertyDemo類定義了一個Prop屬性。

public class PropertyDemo {

private string prop;

public string Prop {

get {

return prop;

}

set {

prop = value;

}

}

}

如果屬性既允許讀取也允許寫入,如PropertyDemo類的Prop屬性,則它同時擁有get和set存取過程。當我們讀取屬性的值時,get存取過程被調用;當我們寫入屬性值時,set存取過程被調用。在set存取過程中,屬性的新值在一個隱含的value參數中給出。

與讀取和寫入域的方法一樣,屬性也可以用同樣的語法讀取和寫入。例如,下面的代碼實例化了一個PropertyDemo類,然后寫入、讀取它的Prop屬性。

PropertyDemo pd = new PropertyDemo();

pd.Prop = "123"; // set

string s = pd.Prop; // get

3.4、以引用方式傳遞簡單數據類型的參數

在Java中,當你把一個簡單數據類型的值作為參數傳遞給方法時,參數總是以值的方式傳遞――即,系統(tǒng)將為被調用的方法創(chuàng)建一個參數值的副本。在C#中,你可以用引用的方式傳遞一個簡單數據類型的值。此時,被調用的方法將直接使用傳遞給它的那個值――也就是說,如果在被調用方法內部修改了參數的值,則原來的變量值也隨之改變。

在C#中以引用方式傳遞值時,我們使用ref關鍵詞。例如,如果編譯并運行下面的代碼,你將在控制臺上看到輸出結果16。注意i值被傳遞給ProcessNumber之后是如何被改變的。

using System;

public class PassByReference {

public static void Main(String[] args) {

int i = 8;

ProcessNumber(ref i);

Console.WriteLine(i);

}

public static void ProcessNumber(ref int j) {

j = 16;

}

}

C#中還有一個允許以引用方式傳遞參數的關鍵詞out,它與ref相似。但是,使用out時,作為參數傳遞的變量在傳遞之前不必具有已知的值。在上例中,如果整數i在傳遞給ProcessNumber方法之前沒有初始化,則代碼將出錯。如果用out來取代ref,你就可以傳遞一個未經初始化的值,如下面這個修改后的例子所示。

using System;

public class PassByReference {

public static void Main(String[] args) {

int i;

ProcessNumber(out i);

Console.WriteLine(i);

}

public static void ProcessNumber(out int j) {

j = 16;

}

}

經過修改之后,雖然i值在傳遞給ProcessNumber方法之前沒有初始化,但PassByReference類能夠順利通過編譯。

3.5、C#保留了指針

對于那些覺得自己能夠恰到好處地運用指針并樂意手工進行內存管理的開發(fā)者來說,在C#中,他們仍舊可以用既不安全也不容易使用的“古老的”指針來提高程序的性能。C#提供了支持“不安全”(unsafe)代碼的能力,這種代碼能夠直接操作指針,能夠“固定”對象以便臨時地阻止垃圾收集器移動對象。無論從開發(fā)者還是用戶的眼光來看,這種對“不安全”代碼的支持其實是一種安全功能?!安话踩钡拇a必須用unsafe關鍵詞顯式地標明,因此開發(fā)者不可能在無意之中使用“不安全”的代碼。同時,C#編譯器又和執(zhí)行引擎協(xié)作,保證了“不安全”的代碼不能偽裝成為安全代碼。

using System;

class UsePointer {

unsafe static void PointerDemo(byte[] arr) {

.

.

}

}

C#中的unsafe代碼適合在下列情形下使用:當速度極端重要時,或者當對象需要與現有的軟件(比如COM對象或者DLL形式的C代碼)交互時。

3.6、代理

代理(delegate)可以看作C++或者其他語言中的函數指針。然而,與函數指針不同的是,C#中的代理是面向對象的、類型安全的、可靠的。而且,函數指針只能用來引用靜態(tài)函數,但代理既能夠引用靜態(tài)方法,也能夠引用實例方法。代理用來封裝可調用方法。你可以在類里面編寫方法并在該方法上創(chuàng)建代理,此后這個代理就可以被傳遞到第二個方法。這樣,第二個方法就可以調用第一個方法。

代理是從公共基類System.Delegate派生的引用類型。定義和使用代理包括三個步驟:聲明,創(chuàng)建實例,調用。代理用delegate聲明語法聲明。例如,一個不需要參數且沒有返回值的代理可以用如下代碼聲明:

delegate void TheDelegate();

創(chuàng)建代理實例的語法是:使用new關鍵詞,并引用一個實例或類方法,該方法必須符合代理指定的特征。一旦創(chuàng)建了代理的實例,我們就可以用調用方法的語法調用它。

3.7、包裝和解除包裝

在面向對象的編程語言中,我們通常使用的是對象。但為了提高速度,C#也提供了簡單數據類型。因此,C#程序既包含一大堆的對象,又有大量的值。在這種環(huán)境下,讓這兩者協(xié)同工作始終是一個不可回避的問題,你必須要有一種讓引用和值進行通信的方法。

在C#以及.NET運行時環(huán)境中,這個“通信”問題通過包裝(Boxing)和解除包裝(Unboxing)解決。包裝是一種讓值類型看起來象引用類型的處理過程。當一個值類型(簡單數據類型)被用于一個要求或者可以使用對象的場合時,包裝操作自動進行。包裝一個value-type值的步驟包括:分配一個對象實例,然后把value-type值復制到對象實例。

解除包裝所執(zhí)行的動作與包裝相反,它把一個引用類型轉換成值類型。解除包裝操作的步驟包括:首先檢查并確認對象實例確實是給定value-type的一個經過包裝的值,然后從對象實例復制出值。

Java對該問題的處理方式略有不同。Java為每一種簡單數據類型提供了一個對應的類封裝器。例如,用Integer類封裝int類型,用Byte類封裝byte類型。

【結束語】本文為你比較了C#和Java。這兩種語言很相似,然而,說C#是Java的克隆或許已經大大地言過其實。面向對象、中間語言這類概念并不是什么新東西。如果你準備設計一種面向對象的新語言,而且它必須在一個受管理的安全環(huán)境內運行,你難道不會搞出與C#差不多的東西嗎?

vb.net怎么做中文語音識別程序

首先添加一個系統(tǒng)的語音COM組件的引用microsoft speech object library然后在程序中聲明一個語音類dim RC As SpeechLib.SpSharedRecoContext這個類有一些事件,如果你要處理它的一些事件,可以用withevent來聲明然后在窗體LOAD事件或你需要的地方先創(chuàng)建一個實例RC = New SpeechLib.SpSharedRecoContext當一個RC被實例化后,系統(tǒng)就會運行語音識別程序.前提是你的系統(tǒng)已經正確安裝這個功能.一般默認就已經安裝好的.其次提醒一下,WIN7的語音識別比XP的好N倍.從閱讀到偵聽都好很多.然后就可以在你需要閱讀的地方使用RC.Voice.Speak("hello 我", 11)11那里是一些枚舉,用來標識系統(tǒng)用前臺還是后臺或其他方式來閱讀文字,簡單的來說就是閱讀的時候不會卡住你的程序.你可以選其他的枚舉來試試作用.以上為閱讀部分.如果需要程序聽你說話,則需要聲明一個偵聽類dim RG As SpeechLib.ISpeechRecoGrammar在初始化時將之與上面的RC建立關系,此時則必須要用withevent來聲明上面的RC,因為涉及電腦聽到你的語音后,會觸發(fā)一個事件,并將聽到的內容傳遞到該事件.其次,要讓系統(tǒng)聽到的解析為命令,就必須準備一個XML結構的文件來保存那些固定的命令.如果電腦在XML文件中找不到那些固定命令或同時不屬于系統(tǒng)命令,電腦將會將其解釋為聽寫.RG = RC.CreateGrammar '(0)

RG.CmdLoadFromFile("聽到.xml", SpeechLib.SpeechLoadOption.SLODynamic)

RG.CmdSetRuleIdState(0, SpeechLib.SpeechRuleState.SGDSActive)然后寫一個過程來處理聽到的事件Private Sub 聽到命令(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal 話語 As SpeechLib.ISpeechRecoResult) Handles RC.Recognition RC.Voice.Speak("我聽到了" 話語.PhraseInfo.GetText, 11)End Sub以上為偵聽部分.下面列一個XML的例文?xml version="1.0" encoding="gb2312"?

GRAMMAR LANGID="804"

RULE NAME="命令" TOPLEVEL="ACTIVE"

L

P打開播放器

P上我的QQ

P關閉你自己 /L

/RULE

/GRAMMAR要讓系統(tǒng)正確地偵聽到你說的話,前提你必須運行語音識別程序并讓其激活到"正在聆聽"狀態(tài).并且你必須有一個能正常使用的話筒而且保證話筒已經打開.(廢話-_-|||)以上就是用VB.NET語音識別的最基本的一些操作.希望對你有幫助.更深入的內容有興趣的話可以和我一起研究.

VB是不是維生素B

VB可以是維生素B族藥品的總稱,也可以是Visual Basic編程程序簡稱。

維生素B(Vitamin B)也作維他命B,是某些維生素的總稱,它們常常來自于相同的食物來源,如酵母等。維生素B最初被認為是像維生素C那樣具有單一結構的有機化合物。

后來的研究證明它是一組有著不同結構的化合物,于是它的成員有了獨立的名稱,如維生素B1,而維生素B成為了一個總稱,有的時候也被稱為維生素B族、維生素B雜或維生素B復合群。

維生素B都是水溶性維生素,它們是協(xié)同作用,調節(jié)新陳代謝,維持皮膚和肌肉的健康,增進免疫系統(tǒng)和神經系統(tǒng)的功能,促進細胞生長和分裂(包括促進紅血球的產生,預防貧血發(fā)生)。

Visual Basic是一種由 公司開發(fā)的結構化的、模塊化的、面向對象的、包含協(xié)助開發(fā)環(huán)境的事件驅動為機制的可視化程序設計語言。從任何標準來說,VB都是世界上使用人數最多的語言——不管是盛贊VB的開發(fā)者還是抱怨VB的開發(fā)者的數量。它源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數據庫,或者輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個應用程序。

VB中 Format(x, "#") 是把x怎樣格式化

下面表格標識了一些可用來創(chuàng)建用戶自定義數值格式的字符:

(0)

數字占位符。顯示一位數字或是零。如果表達式在格式字符串中 0 的位置上有一位數字存在,那么就顯示出來;否則,就以零顯示。如果數值的位數少于格式表達式中零的位數(無論是小數點的左方或右方),那么就把前面或后面的零補足。如果數值的小數點右方位數多于格式表達式中小數點右面零的位數,那么就四舍五入到有零的位數的最后一位。如果數值的小數點左方位數多于格式表達式中小數點左面零的位數,那么多出的部分都要不加修飾地顯示出來。

(#)

數字占位符。顯示一位數字或什么都不顯示。如果表達式在格式字符串中“#”的位置上有數字存在,那么就顯示出來;否則,該位置就什么都不顯示。

此符號的工作原理和“0”數字占位符大致相同,不同之處只有在當表達式中數值的位數少于“#”的位數(無論是小數點左方或右方)時,不會把前面或后面的零顯示出來。

(.)

小數點占位符。在一些國別是用逗號來當小數點的。小數點占位符用來決定在小數點左右可顯示多少位數。如果格式表達式在此符號左邊只有正負號,那么小于 1 的數字將以小數點為開頭。如想在小數前有“0”的話,那么請在小數點占位符前加上“0”這個數字占位符。小數點占位符的實際字符在格式輸出時要看系統(tǒng)的數字格式而定。

(%)

百分比符號占位符。表達式乘以 100。而百分比字符 (%) 會插入到格式字符串中出現的位置上。

(,)

千分位符號占位符。在一些國別,是用句點來當千位符號。千位符號主要是把數值小數點左邊超過四位數以上分出千位。如果格式中在數字占位符(0 或 #)周圍包含有千分位符號,則指定的是標準的千分位符號使用法。兩個鄰近的千分位符號或一個千分位符號緊接在小數點左邊(不管小數位是否指定),其意思為“將數值除以 1000,按需要四舍五入”。例如,可以用格式字符串 "##0,," 將 1 億表示成 100。數值小于 1 百萬的話表示成“0”,兩個鄰近的千分位符號除了緊接在小數點左邊以外,在任何位置出現時均簡單地視為指定了使用千分位符號。小數點占位符的真正字符在格式輸出時,需視系統(tǒng)識別的數字格式而定。

(:)

時間分隔符。在一些國別,可能用其他符號來當時間分隔符。在格式化時間值時,時間分隔符可以用來分隔時、分和秒。時間分隔符的真正字符在格式輸出時,取決于系統(tǒng)的設置。

(/)

日期分隔符。在一些國別,可能用其他符號來當日期分隔符。在格式化日期數值時,日期分隔符可以用來分隔年、月、日。日期分隔符的真正字符在格式輸出時,取決于系統(tǒng)設置。

(E- E+ e- e+)

科學格式。如果格式表達式在 E-、E+、e- 或 e+ 的右方含有至少一個數字占位符(0 或 #),那么數值將表示成科學格式,而 E 或 e 會被安置在數字和指數之間。E 或 e 右方數字占位符的個數取決于指數位數。使用 E- 或 e- 時,會用減號來表示負的乘冪。使用 E+ 或 e+ 時,會用減號來表示負的乘冪并用加號來表示正的乘冪。

- + $ ( )

顯示一個原義字符。如想顯示那些列出的字符之外的字符時,可以用反斜杠 ( \ ) 字符作前綴或以雙引號 (" ") 括起來。

(\)

將格式字符串中下一個字符顯示出來。如想顯示一作為原義字符并有特殊含義的字符,可將此字符置于反斜杠 (\) 之后。反斜杠本身并不會顯示出來。而使用反斜杠 (\) 的效果和使用雙引號是一樣的。如想顯示反斜杠字符,可使用兩個反斜杠 (\\)。

那些不能顯示為原義字符的字符是日期格式字符和時間格式字符(a, c, d, h, m, n, p, q, s, t, w, y, / 和 :)、數值格式字符(#, 0, %, E, e, 逗點和句點)和字符串格式字符(@, , , 和 !)。

("ABC")

顯示雙引號 (" ") 之內的字符串。如在代碼中想在 format 中包含一個字符串,必須用 Chr(34) 將文本括起來(34 為雙引號 (") 的字符代碼)。


網站欄目:vb.net枚舉的作用,vb枚舉法
文章分享:http://weahome.cn/article/hscopp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部