2010-03-30 58 views
31

Có sự khác biệt về chức năng giữa các cú pháp sau ...Kết hợp nhiều thuộc tính trong C#

[Foo, Bar] 
public class Baz {} 

... và cú pháp này?

[Foo] 
[Bar] 
public class Baz {} 

Giả sử mỗi kết quả giống hệt nhau khi được biên dịch, biểu mẫu được ưu tiên?

+0

Tôi chỉ từng thấy các thuộc tính được viết riêng biệt, như [Foo] [Bar] và là những gì tôi tự làm. Tôi cho rằng nó thực sự tùy thuộc vào bạn. – Jess

Trả lời

35

Không có sự khác biệt về chức năng. Đó là một câu hỏi về sự tiện lợi và phong cách.

Thông thường, tôi có xu hướng xem thuộc tính trên các dòng riêng của họ như một cách để giữ chúng riêng biệt và dễ đọc. Bạn cũng có thể sử dụng chú thích dòng // để loại bỏ các thuộc tính riêng lẻ.

[A] 
[B] 
//[C] disabled 
public class Foo {} 
+5

Ngoài ra, vì thuộc tính có xu hướng có tên dài hơn 'A' và' B' nên các dòng có thể khá dài nếu bạn đặt tất cả chúng lại với nhau! – Ken

2

Tôi thường sắp xếp thuộc tính. Nhưng tôi cũng chủ yếu sử dụng chúng với WCF, nơi danh sách tham số có thể nhận được khá lớn.

[OperationContract()] 
[WebGet(...)] 
string MyMethod(string input); 
8

Từ một thuộc tính dễ đọc, các thuộc tính riêng biệt được ưu tiên.

Hãy suy nghĩ về trường hợp bạn đang đi qua một số loại tham số

[Foo(typeof(int)), Bar(typeof(decimal), MessageTemplate="Bar")] 

so

[Foo(typeof(int))] 
[Bar(typeof(decimal), MessageTemplate="Bar") 

Tôi cũng muốn tranh luận, nếu bạn có thể kết hợp chúng thành một, họ sẽ có một thẻ.

Các vấn đề liên quan