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?
Respuestas
¿Demasiados anuncios?[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:
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.
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.
[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
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.
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!