609 votos

La Mayoría De Los Atributos Útiles

Sé que los atributos son extremadamente útiles. Hay algunos predefinidos, tales como [Browsable(false)] cual le permite ocultar las propiedades en la ficha propiedades. Aquí es una buena pregunta, explicando los atributos: .NET: : ¿Qué son los atributos?

¿Cuáles son los atributos predefinidos (y su espacio de nombres) que utilice en sus proyectos?

555voto

Vivek Puntos 7254

[DebuggerDisplay] puede ser realmente útil para ver rápidamente personalizar la salida de un Tipo que cuando se pasa el ratón sobre la instancia del Tipo durante la depuración. ejemplo:

[DebuggerDisplay("FirstName={FirstName}, LastName={LastName}")]
class Customer
{
    public string FirstName;
    public string LastName;
}

Esto es lo que debe buscar en el depurador:

alt text

También, vale la pena mencionar que [WebMethod] de atributo con los CacheDuration set de la propiedad, puede evitar la innecesaria la ejecución del método de servicio web.

216voto

Dan Herbert Puntos 38336

System.Obsolete es uno de los atributos más útiles en el marco, en mi opinión. La capacidad de formar una advertencia sobre el código que no se debe utilizar, es muy útil. Me encanta tener una forma de decirle a los desarrolladores, algo que no deberían ser utilizadas, así como tener una manera de explicar por qué y elija la mejor forma nueva de hacer algo.

La Conditional attribute es bastante útil también para la depuración de uso. Permite agregar los métodos en el código para fines de depuración, que no compilado al construir su solución para la liberación.

Entonces hay una gran cantidad de atributos específicos de Controles Web que me parece útil, pero esas son más específicos y no tienen ningún uso fuera de los desarrollo de los controles de servidor por lo que he encontrado.

164voto

Shog9 Puntos 82052

[Banderas] es bastante útil. Azúcar sintáctico para estar seguro, pero todavía bastante agradable.

[Flags] 
enum SandwichStuff
{
   Cheese = 1,
   Pickles = 2,
   Chips = 4,
   Ham = 8,
   Eggs = 16,
   PeanutButter = 32,
   Jam = 64
};

public Sandwich MakeSandwich(SandwichStuff stuff)
{
   Console.WriteLine(stuff.ToString());
   // ...
}

// ...

MakeSandwich(SandwichStuff.Cheese 
   | SandwichStuff.Ham 
   | SandwichStuff.PeanutButter);
// produces console output: "Cheese, Ham, PeanutButter"


Leppie señala algo que no me había dado cuenta, y que en lugar de frenar mi entusiasmo para este atributo: sí no indicar al compilador para permitir combinaciones de bits como valores válidos de las variables de enumeración, el compilador permite este de las enumeraciones independientemente. Mi C++ fondo que muestra a través de... suspiro

154voto

Blair Conrad Puntos 56195

Me gusta [DebuggerStepThrough] de System.Diagnostics.

Es muy útil para evitar entrar en una línea de no hacer nada métodos o propiedades (si está obligado a trabajar en una de las primeras .Net sin automática de propiedades). Poner el atributo en un corto o el método de la función de captador o setter de la propiedad, y usted va a la derecha de la mosca incluso cuando golpea "paso a paso" en el depurador.

110voto

wprl Puntos 6139

Para lo que vale, aquí está una lista de todos los .NET los atributos. Hay varios cientos.

No sé de nadie más pero tengo algunas graves RTFM!

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: