4

我喜欢像这样组织简单的属性:

private int foo;
public int Foo
{
    get { return foo; }
    set
    {
        // validate value
        foo = value;
    }
}

我一直在玩StyleCop,它对我在构造函数之后放置字段大喊大叫。只要该字段从未在属性之外引用,这种样式是否被普遍接受?注意:我意识到这涉及个人偏好,但我想知道是否有关于这个问题的普遍共识。

4

4 回答 4

6

是的,这在我看来是合理的。

通常我将所有字段和属性放在顶部,然后是构造函数,然后是方法——但如果你想把它们放在构造函数之后,这似乎也是合理的。

于 2011-05-19T20:44:15.997 回答
3

如果您的属性将是简单的数据访问,请考虑使用自动属性:

public int Foo { get; set; }

编译器将代表您在幕后创建一个私有成员变量。

具体到您的问题,不要在 ReSharper 或 StyleCop 等工具上投入太多。他们格式化代码的一些方式,以及他们抱怨的事情确实是一个偏好问题。我没有将成员变量放在它们的公共属性附近,但我可以看到这会很方便。

于 2011-05-19T20:45:05.897 回答
2

可能?由于这只会影响您团队中的人员,因此您必须弄清楚他们认为什么是最好的,然后去做。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;
于 2011-05-19T20:45:38.427 回答
1

这可能是一个偏好问题,但这似乎比让他们与私人成员混合更好。

我通常使用嵌套区域来支持属性区域内的字段,因为它不会干扰视觉工作室的评论,而且它们被组合在一起。

于 2011-05-19T21:01:56.090 回答