2010-02-10 13 views
15

Por ejemplo:¿Qué son [] en C#?

[TestFixtureSetUp] 
    public void Init() 
    { 
     GetTestRepo(false); 
    } 

[TestFixtureSetUp] en este ejemplo, lo que hace? Según mi experiencia, [] generalmente se refiere a listas.

Respuesta

36

Attributes. Son una forma de add metadata sobre métodos/propiedades/interfaces/clases/espacios de nombres para inspection at runtime.

Su ejemplo agrega el TestFixtureSetUpAttribute a un método. Esto permite que el corredor de prueba determine qué método de su clase se debe ejecutar al configurar un accesorio de texto.

corredor

La prueba de carga el conjunto de prueba en la memoria en tiempo de ejecución. A continuación, enumera a través de las clases definidas dentro de su conjunto que se han marcado con un atributo particular (sea cual sea el uso de NUnit para marcar una clase de prueba). El corredor ahora sabe qué clases instanciar para ejecutar pruebas. Luego busca a través de los métodos definidos en la clase un método que se ejecutará para configurar el dispositivo de prueba. Busca en cada método el atributo sobre el que preguntaste. Una vez que encuentra ese método, sabe ejecutar ese método antes de ejecutar las pruebas/cada prueba (lo que signifique en NUnit).

Los atributos se basan en agregar información sobre un método que puede buscar en tiempo de ejecución. Es el tipo de cosa en la que si no los necesitas, no los extrañas, pero cuando los necesitas OMFG es genial que estén disponibles.

(En C#, se puede omitir el "Atributo" en el nombre del tipo. El compilador sabe que está hablando, por ejemplo, "SerializableAttribute" cuando dicen [Serializable])

+0

¿Qué es lo que has hecho con la URL allí? ¿Qué hace www.google.com/url? No lo he visto antes –

+0

@pdaddy Probablemente un artefacto de mi búsqueda. Arreglado. – Will

1

Es una attribute. Algo así como MetaData para la clase/función en la que lo usas.

0

Se llaman atributos (análogos a las anotaciones Java) y se compilan como metadatos.

-1

Parece que está recreando una pregunta básica de VB/C# haciendo una pregunta a la vez en SO. Para agregar a eso, parece ser una buena forma de obtener reputación.

Para responder el título, [] son ​​los símbolos utilizados para

índice
  • en matrices
  • encierran un atributo (metadatos) en un método
  • otra cosa que no puede recordar

VB.Net utiliza los caracteres <> con el mismo fin en los metadatos, pero usa() para indicar el acceso a la matriz.
Java usa una "@" inicial para el mismo propósito

Si no tiene esos caracteres especiales, el compilador no pudo interpretar lo que escribió. No estoy seguro de qué más quieres saber. ¿Quieres saber el significado de TestFixture?

+0

¿Debería poner muchas preguntas en una en su lugar? – EricSchaefer

+2

Debería leer un faq. Busque el * título * de sus preguntas, encontrará la respuesta en el primer golpe o dos. Sin mencionar que la respuesta real dada no coincide con la pregunta, y la pregunta no se relaciona realmente con el título. –

+5

Parece que está poniendo comentarios donde van las respuestas, intente leer las preguntas frecuentes. –

Cuestiones relacionadas