C#:ソースコードのブロック化は必要?

投稿日:

こんにちは、ブロック化の必要性が理解できないSEもどきですw

皆さんは使ってますか?

と、さも開発職の人がこのブログに来てるような書き出しですが、個人的に、このブロック化、使いづらいんですよね。

上手い使い方とかあれば、教えてください。

マジで。

ブロック化って何?

Visual Studio特有のものなんでしょうか?


#region ボタンクリック処理
private void button1_Click(object sender, EventArgs e)
{
view_messagebox(1);
}

private void button2_Click(object sender, EventArgs e)
{
view_messagebox(2);
}

private void button3_Click(object sender, EventArgs e)
{
view_messagebox(3);
}
#endregion

こんな感じで、「#region」から「#endregion」で閉じられるやつです。

これの上手い使い方が分からない。

メリットは?

ソースの可読性が上がる?

と聞いたけど、個人的にはそもそも他人のソースの時点で可読性もクソもない訳でw

あ、ソースをブロック単位で折りたたむことが出来るので、表示をすっきりさせることが出来ます。

こんな感じのソースを

折りたたむとこうなる。

これも、個人的には、見づらいだけなので・・・

 

・・・?

メリットらしいメリットが無いぞ???

デメリットは?

これはもう、個人の感想でしかない。

見づらい。

これはもう、折りたたまれてると、いちいち展開しないといけないのでイライラします。

書きづらい

いちいち「#region」と「#endregion」でくくる必要があるので、めんどい。

つづり間違えると、エラーになるし。

整理できない

任意の処理群をブロック化できることがメリットなのだけど、それ故に自分で処理を纏める必要がある。

例えば、こんな画面を作ったとして、各ボタンにはそれぞれクリック時の処理がある。

ここに4つ目のボタンを追加。

当然、プロパティ画面で確認しても、「Click」の部分には何もない訳で。

「Click」をダブルクリックして、button4_Clickを追加。

で、追加されたソースはこうなる。

4番目のボタンの処理を「 #region ボタンクリック処理」に纏めるためには、手動で移動させる必要がある。

これ、まだ数十行だからいいけど、ボタンやラベル、テキストボックスの処理が追加されると、数百行になるのも珍しくない。

そこにどのブロックにまとめるのか?

っていう問題と、そのブロックはどこにあるのか?

っていう問題が発生する。

自分の知る限り、このプルダウンのようにブロックの一覧を見れて、任意のブロックにすぐに移動できる仕組みを知らない。

なので、ブロックでまとまっていても、どこに何のブロックが書かれているか把握しづらい

検索時の一覧性が低い

Visual Studioでは、検索した単語をハイライト表示してくれます。

で、このハイライトを頼りにソースをスクロールしてザッ眺めることもあるけど、ブロックが閉じられてると見えない・・・

検索結果から飛ぶことは出来るのでいいんですが・・・

社内の開発ルールはどうなってるか?

ぶっちゃけ、弊社では社内の開発ルールになってるから、ブロック化してるだけ。

なんだけど、どうなのかな。

他の人は、見やすいと思ってるんだろうか?

そこが分からない・・・

ブロック化は無くても問題ない

ドロップリストでは項目名順に表示される

命名規則さえ守られてれば、見つけやすいと思うんですよ。

クリック処理は「Click_」で始めるとかにしておけば、クリック関連の処理なんてすぐ見つかる。

検索すればいい

身もふたも無いけど、検索すれば良い。

ハイライト表示で視認性もある。

検索結果から該当行へ移動も出来る。

プロパティのイベントからソースへ移動できる

例えばボタンのクリックイベントを登録すると、画面上ではこうなる。

Clickってところをダブルクリックすると、該当するイベント処理を表示できる。

まとめ

個人的にはブロック化のメリットが分からないんですよ。

だれか、良い管理の方法を教えてください。

ブロック化の本当のメリットとか、楽な管理の方法とか教えてください(切実)。

 







-C#
-,

関連記事

[C#]NumericUpDownコントロールで、上下キーでの値変更を禁止する

結論から言うと、「InterceptArrowKeys」プロパティをfalseにしてやることで解決。 NumericUpDownコントロールを使うメリット 画面構築をしている際、ユーザーの任意入力項目 …

C#でTryParseメソッドを使って文字列が数値かどうかを確認する

C#に限らず、コーディングしていると数値が欲しいのに、引数がstring型とかいう状況がよくあるわけで。 判定方法はいろいろあるけど、TryParseを使うと簡単だった。 TryParseって何するの …

[Oracle]破棄されたオブジェクトにアクセスできません。 オブジェクト名 ‘oracleconnection’ です。

破棄されたオブジェクトにアクセスできません。 オブジェクト名 ‘oracleconnection’ です。 破棄されたオブジェクトかどうかの判断(MSDK) MSDNでも破棄さ …

VisualStudioでデータテーブルの中身確認できるの便利すぎワロタw

DataSetビジュアライザーで、DataTableの中身が確認できるのが便利すぎたのでメモ。 データテーブルって気軽に使えるけど、中身の確認がしち面倒くさい件 本当のところはどうなのか?ってのは知ら …

devenvを使って、プロジェクトをコマンドラインからビルドする方法[VisualStudio]

今日も今日とて休日出勤\(^o^)/   現在、C#をメイン言語として使用しています。 で、当然というか、開発の区切りだったり、テストするためにビルドというものをやります。 このビルド、プロ …


カテゴリー