我喜欢像这样组织简单的属性:
private int foo;
public int Foo
{
get { return foo; }
set
{
// validate value
foo = value;
}
}
我一直在玩StyleCop,它对我在构造函数之后放置字段大喊大叫。只要该字段从未在属性之外引用,这种样式是否被普遍接受?注意:我意识到这涉及个人偏好,但我想知道是否有关于这个问题的普遍共识。
我喜欢像这样组织简单的属性:
private int foo;
public int Foo
{
get { return foo; }
set
{
// validate value
foo = value;
}
}
我一直在玩StyleCop,它对我在构造函数之后放置字段大喊大叫。只要该字段从未在属性之外引用,这种样式是否被普遍接受?注意:我意识到这涉及个人偏好,但我想知道是否有关于这个问题的普遍共识。
是的,这在我看来是合理的。
通常我将所有字段和属性放在顶部,然后是构造函数,然后是方法——但如果你想把它们放在构造函数之后,这似乎也是合理的。
如果您的属性将是简单的数据访问,请考虑使用自动属性:
public int Foo { get; set; }
编译器将代表您在幕后创建一个私有成员变量。
具体到您的问题,不要在 ReSharper 或 StyleCop 等工具上投入太多。他们格式化代码的一些方式,以及他们抱怨的事情确实是一个偏好问题。我没有将成员变量放在它们的公共属性附近,但我可以看到这会很方便。
可能?由于这只会影响您团队中的人员,因此您必须弄清楚他们认为什么是最好的,然后去做。Style Cop 的建议往往有点……过火。
我通常将它们放在属性之后,因为上面的空间是为文档保留的。
// placed up here, it looks kinda weird, imho
// private int foo;
/// <summary>
/// The index of the Foo in the <see cref="Bar"/>
/// </summary>
public int Foo
{
get { return foo; }
set
{
// validate value
foo = value;
}
}
private int foo;
这可能是一个偏好问题,但这似乎比让他们与私人成员混合更好。
我通常使用嵌套区域来支持属性区域内的字段,因为它不会干扰视觉工作室的评论,而且它们被组合在一起。