C# 样式:可以将属性与其支持字段分组

本文关键字:支持 字段 属性 样式 | 更新日期: 2023-09-27 17:57:20

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

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

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

C# 样式:可以将属性与其支持字段分组

是的,这对我来说似乎是合理的。

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

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

public int Foo { get; set; }

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

特别是针对您的问题,不要过多地购买ReSharper或StyleCop等工具。他们格式化代码的一些方式,以及他们抱怨的事情确实是一个偏好问题。我没有将成员变量放在其公共属性附近,但我可以看到这将如何方便。

五月? 由于这只会影响团队中的人员,因此您必须弄清楚他们认为最好的方法并继续下去。 风格警察经常有点...落水于其建议。

我通常将它们放在属性之后,因为上面的空间是为文档保留的。

// 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;

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

我通常使用嵌套区域作为属性区域内的支持字段,因为它不会干扰 Visual Studio 注释,但它们是分组的。