- PR -

Region どう使えば便利なんでしょう??

投稿者投稿内容
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-12-14 11:11
私は

コンストラクタ・デストラクタ
プロパティ
メソッド
オーバーライド(メソッドの)
イベントハンドラ
タイプ

のregionを作ります。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2005-12-14 14:31
僕は今まで使ったことがなかったんですが、皆さんの使い方を読んで、これを機に使ってみようと思いました。

コード:

+コンストラクタ

+日付プロパティ

#region "入力された値は正しい"
    public function 入力された値は正しい(byval 値 as string) as boolean
        return (数値だ() & 桁数が8文字以内だ())
    end funciton
 
    Private Function 数値だ(ByVal 文字列 As String) As Boolean
        Dim meta As String = "^-?[0-9]*\.?[0-9]+$"
        Dim regex As New System.Text.RegularExpressions.Regex(meta)
        Dim m As System.Text.RegularExpressions.Match = regex.Match(文字列)
        Return m.Success
    End Function

    Private Function 桁数が8文字以内だ(ByBal 文字列 as string) as Boolean
        return (文字列.Length <= 
    End Function
#end region



のように、公開メソッド「入力された値は正しい」を読みやすくするための下請けルーチン「数値だ」と「桁数が8文字以内だ」を括ってしまうと整理されて便利だと思ったのですがどうでしょうか。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-12-14 15:19
引用:

R・田中一郎さんの書き込み (2005-12-14 14:31) より:
公開メソッド「入力された値は正しい」を読みやすくするための下請けルーチン「数値だ」と「桁数が8文字以内だ」を括ってしまうと整理されて便利だと思ったのですがどうでしょうか。


私は、そのメソッドの中でしか使わないメソッドは
親メソッド名_名称()
という名前を付けています。例えばGetItems()で使うメソッドは
GetItems_MakeOneLine()
というような感じ。#regionは使わないですね。
#regionを使いすぎるとソースにたどり着くのが面倒になりますから。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-14 16:01
この例の場合は静的メソッドが望ましいので、
静的メソッドにして、非公開部分は別枠でまとめます。
インスタンス メソッドの場合は、R・田中一郎 さんのようにまとめることがあります。

インナークラス何かもまとめることはありますね。
ただし、#region ディレクティブは、3 回以上ネストしないようにしています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-12-14 16:11
引用:

じゃんぬねっとさんの書き込み (2005-12-14 09:52) より:
そういえば、C# ではメソッド内などでも、#region ディレクティブが使えますよね。
私は使ったことがありませんが、使われている方はいらっしゃいますか?

私の場合、まとめるくらいならメソッドにしちゃいます。(^^
構造化言語からの基本がそういうものですし、コメントも簡素化できますからね。




私は、あまり#regionディレクティブ自体を使わない方ですが、
メソッド内で使う事があります。
どういう時かというと、

・事前条件
・事後条件

のチェックをしているブロックで括るようにしています。
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-12-14 16:50
クラスの最初で宣言されている変数の塊や、コンストラクタとDisposeはまとめて#regionで囲んでしまいます。たくさんスクロールするのが嫌なんで(^^;

いつも思うんですが、PDFリーダーみたいに、左のペインにregion一覧を出してくれて、そこをクリックしたら目的のregionにジャンプするとうれしいなぁと個人的には思います。
ハルシオン
常連さん
会議室デビュー日: 2005/03/29
投稿数: 24
投稿日時: 2005-12-14 18:19
皆様、色々と使ってらっしゃるんですね!
早速真似して使わせていただきます。

引用:

じゃんぬねっとさんの書き込み (2005-12-14 09:52) より:

最初、スレッド タイトルを見た時、System.Drawing.Region クラスのことかと思いました。
「#Region ディレクティブ」とした方が良いかもしれませんね。





↑「#Region ディレクティブ」が正しい呼称だったんですね。ありがとうございます。。

確かに、画面のスクロールが長くなるとうっとしいですし、プロパティやコンストラクタなど、一度作ってしまって、その後あまりいじる必要のない(というかイジられたくない)部分は#Regionで囲んでしまったほうがスッキリしますね!!

イベントハンドラで使用する場合はそれに関連するメソッドも一緒に#Regionの中に含めてしまったほうがよいのでしょうか。。。
あくまで、イベントだけのほうが、ベターでしょうか。



[ メッセージ編集済み 編集者: ハルシオン 編集日時 2005-12-14 18:21 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-14 18:29
引用:

trapemiyaさんの書き込み (2005-12-14 16:50) より:

いつも思うんですが、PDFリーダーみたいに、左のペインにregion一覧を出してくれて、そこをクリックしたら目的のregionにジャンプするとうれしいなぁと個人的には思います。


クラス ビューがあるので、不要と判断されている可能性がありますよ。(^^)

引用:

ハルシオンさんの書き込み (2005-12-14 18:19) より:

イベントハンドラで使用する場合はそれに関連するメソッドも一緒に#Regionの中に含めてしまったほうがよいのでしょうか。。。
あくまで、イベントだけのほうが、ベターでしょうか。


時と場合と人によるかもしれませんね。
#region ディレクティブをどの目的に使うのか、ですよね。
ある小規模な機能をまとめるために用いるのであれば有効なのでしょう。

私はイベントとメソッドは分ける人ですが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)