2012-05-23 52 views
8

Điều này dường như không thể, nhưng tôi sẽ hỏi anyway ... Có thể trong C# để áp dụng một thuộc tính duy nhất cho nhiều trường cùng một lúc không?Bạn có thể áp dụng một thuộc tính cho nhiều trường trong C# không?

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

Có một phương pháp ngắn tay để đưa "SomeAttribute" trên m_Var1 & m_Var2, nhưng không phải trên m_nVar3? Hiện tại, chúng tôi đang đặt các thuộc tính trước mỗi trường, nhưng sẽ tốt hơn nếu đặt tất cả các trường bằng cách sử dụng một thuộc tính bên trong một khối.

Trả lời

10

Vâng, nó có thể:

[SomeAttribute] 
public int m_nVar1, m_nVar2; 

(nhưng rõ ràng chỉ khi các loại đều giống nhau)

+0

Ừ , Cảm ơn .. nhưng các loại chắc chắn sẽ không giống nhau trong trường hợp sử dụng của chúng tôi. –

+0

@Faustus Nơi các loại khác nhau, không có cách nào để làm điều này. –

+0

Ok, cảm ơn ... đó là những gì tôi đã tìm thấy vì tôi không thể tìm thấy nó trong MSDN ở nơi đầu tiên. –

-1

Điều này có thể làm việc ?, nhưng có thể kết thúc được khá tẻ nhạt

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; 
    } 
} 
Các vấn đề liên quan