2014-05-19 104 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