2011-07-13 2 views
5

C#コードの末尾に近いと宣言するのはかなり一般的ですか?コードのクリーンアップ:クラスの上部または下部でフィールド、変数、プロパティを宣言する必要がありますか?

私はそのように行われた例はほとんど見ませんでした。

ソースコードを整理するのに役立つResharperのようなツールがありますが、それは私に領域を作成する場所を指定するオプションがありますか?

+0

通常、オンラインの例です。私はここで同様の質問を見つけることができませんでしたので、重複している場合はリンクを提供してください。 – VoodooChild

+0

実際には関係ありませんが、@ topと宣言するのが常に良いです。 – Rahul

+0

@Rahulので、それは問題ではないと言っています... –

答えて

4

これは、大多数のコンパイラでは、(クラスファイルの)上または下の配置は結果に影響しません。歴史的には多くの人がトップでそれをやっていますが、私はそれらを最下位に残しています。

なぜですか?

メンバー変数を宣言すれば、もう私はそれを見る必要はありません - それは私のインテリセンスに表示されるので、私は自分の顔にそれを必要としません。ファイルを開くと、トップが表示されます - 変数宣言の束ではなく、すぐに自分のコードを見たいと思います。変数定義はVSエディタのネイティブに折りたたみ可能な領域ではないため、これは特に重要です。上部にある場合は、スクロールする必要があります。私はそれにジャンプする必要がある場合は、Visual StudioのF12またはちょうどCtrl + 私はそこに連れて行くでしょう。

これは、最初は扱いにくいものもありますが、すぐに成長するスタイルです。これは、より成熟したファイルに対する特に優れたアプローチです。また、ReSharperのようなプラグインを使用している場合は、生成された宣言を他のすべてのプラグインに入れることができるほどスマートです。つまり、ReSharperが置く場所の底にそれらがある場合に意味します。もちろん、ファイル内に複数のクラスがある場合、これは乱雑になることがありますが、そうした場合、変数定義の配置は、あなたの文体的な問題の中では最小です。

編集:

トピックをオフに漂流するリスクが、代わりに#regionブロックを使用してのコメント:私はすべての時間領域を使用し、彼らは私がダウンして邪魔にならないようにコードを折りたたむに役立つので、私は彼らが大好きです。しかし、それらを使用することは、関連しないコードがその地域の中に進入するのは簡単なので、規律を必要とします。それはそれが属していない#regionに埋もれていることを見つけるためだけに何回コードを探しましたか?

+0

私はあなたの最初の行を読んでいます: "普通の人は...."ここで寝る時間zzzzzzzzz – VoodooChild

+1

あなたは変数を "あなたが#regionに囲んだ場合 –

+0

ReSharperのCTRL + F12(List Members)では、コード構成の重要性はそれほど重要ではありませんが、私はReSharperに規則に従って地域にメンバーを入れたいと思います。たとえば、私は "パブリックメソッド/プロパティ/フィールド"、 "プライベートメソッド"と "プライベートフィールド/プロパティ"、またはいくつかのケースでより細かいことが好きです。 – angularsen

3

私は一番上にそれらを宣言します。試してみてくださいStyleCop ...それはあなたにそれと他の何百万もの他のスタイルの問題についての推奨を与えると思います...それほど涼しい...そして、あなたが同意しないルールを無効にすることができます

1

AFAIK共通の規約はありません。フィールドとそれらで動作するメソッド/プロパティは一緒になっています。他の人は、公共の物を上に、私的に下に置くことを好む。

本当に重要なのは、チームのスタイルに合ったスタイルを使用することです。または、まだチームスタイルがない場合は、チームに1つを忠実に納得させるようにしてください(あなたのスタイルはスタイルなしより優れていると説得する必要があります)。このトピックに関する

+3

一貫性が最も重要なことです。 – Dunes

1

マイ(後半)5セントは:

私はステートレスプログラミングが好きです。自動実装されたプロパティが存在する前に、クラス内のプライベートフィールドの数はステートフルなものの大まかな尺度でした。だからこそ私は彼らを一番上に置いて素早く印象づけることを好みました。同じ理由から、私は自動車のプロパティを一番上にまとめておくのが好きです。

関連する問題