2014-05-19 139 views
4

我想知道什麼區別聲明變量時這樣...字符串VS [字符串]在VB.Net

Dim something as String = Nothing 

Dim something as [String] = String.Empty 

具體字符串和[之間的區別串]。

+0

http://msdn.microsoft.com/en-us/library/ksh7h19t(v=vs.90).aspx – Steve

+0

VBA中的標題,VB.NET標記?不要做第二個;這就像命名你的孩子「孩子」 – Plutonix

+0

Plutonix - 對不起,這是一個鍵盤滑。 – user3645526

回答

4

除了第一個是Nothing,第二個是空的string之外,沒有區別。

你用方括號([...])在VB.NET 的identifier身邊,告訴它應該忽略keyword編譯器。

它常用於Enum

Dim colors = [Enum].GetValues(GetType(Colors)) 

Enum以來是一個關鍵字和一個類型。沒有不能編譯的括號。

MSDN

常規標識符可能不匹配的關鍵字,但逃脫標識符 即可。轉義標識符是由方括號 括起來的標識符。

+0

Tim,爲什麼然後'Dim x As [String]'work and'Dim y As [Integer]'does not? –

+1

@ roryap:嘗試'Dim y As [Int32]'。如果你用'括號'提供'Integer',我假設編譯器找不到'System.Int32'。 'Integer'只是'System.Int32'的別名。 –

+0

好吧,這是有道理的。我無法將自己的頭圍繞在爲什麼他們在我正在修改的某些代碼中以雙向方式聲明事物。 – user3645526