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#
-,

関連記事

no image

ToolTip(ツールチップ)のPictureBoxに登録ものが表示されなくなった

PictureBoxに関連付けてたToolTip(ツールチップ)が表示されなくなる~C# http://ameblo.jp/oregano-blog/theme-10017227400.html 事の …

C#で”LC.exe” はコード -1 を伴って終了しました(”LC.exe” exited with code -1)ってエラー

未だに確定した原因は自分で掴めてないんだけど、とりあえずエラーで検索して対策してみた。 どうにも、ビルド時にEXEフォルダ?とかにSRCフォルダからのコピーが上手くいかずにロックされてしまったりすると …

[C#]文字を繰り返したものを取得したい。

いちいちfor文とかで繰り返すのも効率が悪いなと思ってたので、処理を関数化・・・ ただ、共通関数として登録しないので、別のところで使いたい場合は、同じ関数が複数登録されちゃうことに・・・ 更には、思い …

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

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

[C#]TextBoxで、マウスクリック(1回目)だけ、内容を全選択させる

TextBoxの内容を全選択させるには、SelectAll()を使用 マウスの1回目も含めるなら、BeginInvoke~を使用 VB.net版はこちら。 日本の中心付近で仕様変更と闘うSE日記[VB …


カテゴリー