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

5月?これはあなたのチームのメンバーにのみ影響するため、彼らが何を最善と考えているかを理解し、それに従う必要があります。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

好みの問題かもしれませんが、非公開メンバーと混同するよりはこちらの方が良さそうです。

私は通常、ネストされた領域をプロパティ領域内のバッキング フィールドに使用します。これは、Visual Studio のコメントを妨げず、グループ化されているためです。

于 2011-05-19T21:01:56.090 に答える