2014-05-19 4 views
4

Je me demande ce que la différence est la déclaration des variables en tant que telle ...chaîne vs [chaîne] dans VB.Net

Dim something as String = Nothing 

et

Dim something as [String] = String.Empty 

Plus précisément la différence entre la chaîne et [ Chaîne].

+0

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

+0

VBA dans le titre, balise VB.NET? Ne faites pas la seconde; c'est comme nommer votre enfant "enfant" – Plutonix

+0

Plutonix - Désolé à ce sujet c'était un lapsus du clavier. – user3645526

Répondre

4

Il n'y a aucune différence, à part le fait que le premier est Nothing et le second string vide.

Vous utilisez les crochets ([...]) autour d'un identifier en VB.NET pour dire au compilateur qu'il doit ignorer un keyword.

Il est souvent utilisé sur Enum:

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

depuis Enum est un mot-clé et un type. Sans les parenthèses qui ne compileraient pas.

MSDN:

identificateurs réguliers peuvent ne pas correspondre des mots-clés, mais identifiants échappé peut. Un identificateur échappé est un identificateur délimité par des parenthèses carrées .

+0

Tim, pourquoi alors «Dim x As [String] 'travail et' Dim y As [Integer] 'ne fonctionne pas? –

+1

@roryap: essayez 'Dim y As [Int32]'. Je suppose que le compilateur ne trouve pas System.Int32 si vous fournissez Integer avec des parenthèses. 'Integer' est juste un alias pour' System.Int32'. –

+0

D'accord, cela a du sens. Je ne pouvais tout simplement pas comprendre pourquoi ils déclaraient les choses dans les deux sens dans un code que je suis en train de réviser. – user3645526