2012-06-13 21 views
7

¿Puede alguien completar los espacios en blanco para mí, incluida una breve descripción del uso y quizás un fragmento de código? Soy muy consciente de los dos primeros, en particular, pero un poco nebuloso en la última especial:VB.NET corchetes() {} [] <>

  • () - Se utiliza para llamar a una función, la instanciación de objetos, el paso de parámetros, etc.
  • {} - Utilizado para definir y agregar elementos a matrices o conjuntos.
  • []: se utiliza para forzar a un objeto a tratarse como un tipo en lugar de una palabra clave.
  • <> - ¿Se usa para ...?

Por ejemplo, veo cosas como esta todo el tiempo, pero todavía no muy seguro de lo que significa que los soportes ...

<TemplateContainer(GetType(TemplateItem))> _ 
Public Property MessageTemplate As ITemplate 

Respuesta

7

En este caso se utiliza para la declaración de atributos. También se puede utilizar en XML Literals de la siguiente manera:

<TestMethod> 
Public Sub ThisIsATest() 
    If 1 <> 0 Then 
    Dim foo = <root> 
       <child>this is some XML</child> 
       </root> 
    End If 
End Sub 
+0

Soy un ENORME admirador de ejemplos de implementación práctica. Muchas gracias. Usted obtiene mi voto. :) – Chiramisu

5

en VB.Net, <> se utiliza para encerrar Attributes.

+0

Reed my man !! Gracias ... por alguna razón, a Google no le gusta buscar símbolos como corchetes y tal. Mucho más fácil de encontrar cuando en realidad sabes qué buscar. ;) – Chiramisu

4

VB.NET utiliza <> de atributos, así como para indicar "no es igual" (!=)

En su ejemplo que sólo está encerrando atributos. Ese mismo código en C# sería

[TemplateContainer(GetType(TemplateItem))] 
public ITemplate MessageTemplate { get; set; } 

Este atributo se utiliza en el desarrollo de los controles con plantilla, que por separado los datos de presentación. En otras palabras, un control con plantilla puede conservar la misma funcionalidad al cambiar su apariencia.

+0

Sí, estoy muy familiarizado con "no es igual" desde SQL y otros lenguajes. EDITAR: Para puntos de bonificación, entonces, ¿cómo se limita/mejora/etc. la declaración? Gracias. :) – Chiramisu

10

VB.net usa paréntesis para, entre otras cosas, agrupaciones aritméticas y parámetros de función (ambos usan paréntesis en C#), así como subíndices de matriz y parámetros de propiedad por defecto (ambos utilizan corchetes en C#), (indexadores), etc. también utiliza (Of ...) para encerrar una lista de tipos (que se incluye en <...> en C#, sin la palabra clave "Of".

Los apoyos se utilizan para la matriz o conjunto expresiones de inicialización, y son también utilizado al definir un tipo genérico con múltiples restricciones (por ejemplo, (Of Foo As {IEnumerable, IDisposable, Class})). Tenga en cuenta que este último uso solo está permitido por restricciones; por desgracia, no es posible, por ejemplo, Dim MyThing As {IEnumerable, IDisposable, Class}).

Los apoyos se utilizan ahora también para la construcción de New With {}:

Dim p = New Person With {.Name = "John Smith", .Age = 27} 
Dim anon = New With {.Name = "Jack Smythe", .Age = 23} 

Los corchetes se utilizan para incluir identificadores cuya ortografía se correspondería con el de una palabra reservada. Por ejemplo, si una clase definió un método llamado Not (quizás la clase se escribió en un idioma sin una palabra clave Not), se podría usar dicho método dentro de VB al encerrar su nombre entre corchetes (por ejemplo, someVariable = [Not](5)). En ausencia de corchetes, la expresión anterior establecería someVariable en -6 (el resultado de aplicar el operador vb.net Not al valor 5).

Se utilizan corchetes angulares, como se indica en otra parte, para los atributos. Tenga en cuenta que, en muchos casos, los atributos se colocan en la línea por encima de lo que afectan (a fin de evitar empujar la variable afectada más allá del borde derecho de la pantalla). En las versiones anteriores de vb, dicho uso requiere el uso de una marca de continuación de línea (subrayado final).

Los corchetes angulares se utilizan también para XML Literals y XML Axis Properties:

Dim xml = <simpleTag><anotherTag>text</anotherTag></simpleTag> 
Console.WriteLine(xml.<anotherTag>.First.Value) 
+0

Gracias por la completa explicación, bastante útil. :) – Chiramisu

+0

+1, pero para completar esta respuesta, debe mencionar literales XML. –

+0

@MarkHurd: me había olvidado de esos, ya que nunca los había usado. No dude en editar la respuesta para incluirlos, ya que probablemente los describa con más precisión que yo. – supercat

Cuestiones relacionadas