ます。純'#領域指令条考えになりますか。[定休日]
-
24-09-2019 - |
質問
の皆さんには本当に感謝している可能性の定義地域コードとしてでは読みや辛.
思い思いの皆様に 同条約のすべてのクラス (所定の順にすべての地域でのように:
- 民間分野
- コンストラクタ
- クラスの特性
- イベントハンドラ
- など---。
い命題をどのようにこの部門は次のようになります(何を、どの地域で行うことが、何名い)順番である。
解決
私の規則がそれらを使用することではありません。
あなたは私はあなたのクラスがあまりにも複雑で、ばらばらにされなければならない提案した領域を介しての広大な部分を非表示にする必要があるような大きすぎるなって、あなたのクラスを見つけた場合。
他のヒント
ること"とだれかが言っていたことを有するコンベンションのような上:
- 民間分野
- コンストラクタ
- クラスの特性
- イベントハンドラ
- など---。
のような設定テーブルのすべてのプレートを、すべてのスプーンは、すべてのナイフと、すべてのフォークスいただけます。
私の #region
発行けに関連するメソッドは、イベントの定義と性質につ地域です。しかし、どうしていくべきなのかについてここですべてのことを示しますコードで香り(いずれかのクラスが大きすぎませも多くのことがその最初のステップへのリファクタリングでより良いクラスです。
私は地域を見るたびに、私はコードがいずれかの発生していると考えるかリファクタリングを必要としているます。
避け、それらを使用して、あなたがそれらの必要性を感じたとき、あなたは何をやっている再検討し、より小さなものにしてクラスを分割してみてください。最終的に、これは複数の領域をします使用するよりも、アプリケーションの可読性を支援します。
個人的にはないお勧めのコード領域の一部コード約に従います。その主な理由として 地域コードを隠す, を招く可能性がある問題のように:
- 開発者が内部的に重要な 一部のソースコード
- の平均 額の組織委員会、同じファイルに増加する傾向にある
ご興味のある方は強制コーディングスタイル条約フォームよりごみてください Microsoft StyleCop.このツールは現在だけのためのC#.
#region Lotsa boring code and lookup tables
私はそれがスクリーンの不動産を保存するために使用し、他には何も:)
私は以下の領域を使用します:
Private Member Variables
Constructor
Public Properties
Private Methods
Public Methods
Events
理由は、コードのより良い組織である。
コードの2000以上のラインを持っており、地域ずにコードを維持することは非常に困難である可能性のあるファイルとI仕事ます。
私は、地域の必要がないと思います。彼らは読みやすいではありません。 あなたのクラスで(だと思う、あなたに本当に必要がありますか?)量のコードが必要な場合は、クラスの論理ユニットを分割する「部分的」クラスを使用することができます。
は、コメントの別の形と考えます。したがって、それはおそらく、コードを最新のドリフトアウトされます。
だから、NEVERすでにコードに記載されていることをコメントや地域のディレクティブに重複します。
だけ余分な情報を追加します。
は特に、特定のメンバー等のプロパティ、イベント、であるという事実を再表示する領域を使用して完全に無意味です。最も一般的な問題は、あなたがそれを公共のために「プライベートメソッド」するための領域を作成し、それらのその後編集1ということがあります。今、あなたは、旧バージョンとの差分に、簡単な変更が識別するためにはるかに困難であることをその手段、それを移動する必要があります。
あなたはこのに興味があるかもしれないの あなたは、C#に何も言わないがdo地域のの。
私は長い間、プロジェクトaccrossあなたがしている一貫として、それはあなたがそれらを書くいるため問題であまりないこと。また、(それゆえ、最初のリンク!)それらを乱用の非常に非常に警戒する。
だと思いますそこのコードの一行だけを隠して、閉じたコンストラクタ域を見つけることより悪い何も。
私は最終的に、それは個人的な好みにダウンだと思います。私が言ったように、一貫性が鍵です!
私は、私がいつも使っVS 2008のための私自身の地域コードスニペットを書きました
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>#class region</Title>
<Shortcut>#classregion</Shortcut>
<Description>Code snippet for #region in classes</Description>
<Author>Simon Linder</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>name</ID>
<ToolTip>Region name</ToolTip>
<Default>MyRegion</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[#region Variables
$selected$ $end$
#endregion
#region Construction/Destruction
$selected$ $end$
#endregion
#region Properties
$selected$ $end$
#endregion
#region Public Methods
$selected$ $end$
#endregion
#region Private/Proteced Methods
$selected$ $end$
#endregion]]>
</Code>
</Snippet>
</CodeSnippet>
私はVariables
、Construction/Destruction
、Properties
、Public
とPrivate
方法のための使用領域を行う見ることができるように。私は頻繁にevents
と呼ばれるプライベート領域に別のサブ領域を追加します。地域の順序も StyleCopするます。