2010-03-30 62 views
31

有以下语法之间的功能差异...合并多个属性在C#

[Foo, Bar] 
public class Baz {} 

...这句法?

[Foo] 
[Bar] 
public class Baz {} 

假设每个编译时产生相同的结果,哪一个是首选的形式?

+0

我以前见过独立写的属性,比如[Foo] [Bar],这是我自己做的。不过,我认为这真的取决于你。 – Jess 2010-03-30 16:40:22

回答

35

没有功能差异。这是一个方便和风格的问题。

大多数情况下,我倾向于在自己的行上看到属性,以便使它们分开并易于阅读。能够使用行注释//单独删除属性也很好。

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

另外,因为属性的名称往往比'A'和'B'长,所以如果将它们放在一起,线条可能会变得很长! – Ken 2010-03-30 16:50:26

2

我通常会堆叠属性。但我也主要使用这些与WCF参数列表可能会相当大。

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

从可读性的角度来看,单独的属性是首选。

想想你在哪里传递某种类型的参数

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

的对比

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

我也想说,如果你可以将它们合并成一个的情况下,他们应该是一个标签。