2012-05-23 10 views
8

Esto no parece posible, pero lo preguntaré de todos modos ... ¿Es posible en C# aplicar un único atributo a múltiples campos a la vez?¿Se puede aplicar un atributo a múltiples campos en C#?

public class MyClass { 
    [SomeAttribute] 
    public int m_nVar1; 
    [SomeAttribute] 
    public int m_nVar2; 
    public int m_nVar3; 
} 

¿Hay un método corto la mano para poner el "SomeAttribute" en m_Var1 & m_Var2, pero no en m_nVar3? Actualmente, estamos colocando los atributos antes de cada campo, pero sería bueno poner todos los campos usando un atributo dentro de un bloque.

Respuesta

10

sí, es posible:

[SomeAttribute] 
public int m_nVar1, m_nVar2; 

(pero obviamente sólo si los tipos son los mismos)

+0

Sí Gracias ... pero los tipos ciertamente no serán los mismos en nuestro caso de uso. –

+0

@Faustus Donde los tipos difieren, no hay forma de hacerlo. –

+0

Ok, gracias ... eso es lo que pensé ya que no pude encontrarlo en MSDN en primer lugar. –

-1

Esto podría funcionar ?, pero podría llegar a ser bastante tedioso

public class CustomClass 
{ 
[CustomAttribute] 
public dynamic value { get; set; } 
} 

public class MyClass 
{ 
    public CustomClass m_nVar1, var2, var3; 
    public MyClass() 
    { 
     m_nVar1.value = (int)m_nVar1.value; 
     var2.value = (string)var2.value; 
    } 
} 
Cuestiones relacionadas