クラスを複数のドキュメントに分類して記述するには?

解決


hiroshi  2004-11-24 11:56:11  No: 117761  IP: [192.*.*.*]

数年がかりで作ったVBのプログラムを.NETに移植しクラス化しようとしているのですが、一つのクラスのメソドが約300個くらいになり、デバグ作業がやり辛くなるのではないかと危惧しています。
今まではその数百あるプロシジャーを機能ごとに標準モジュールにまとめ、15の標準モジュールでプロジェクト全体を構成していたのですが、そのほとんどを一つのクラスの中に記述しなければならないので、一つのメソドを見つけるのにも苦労するのではないかなと心配しています。
クラスを複数のドキュメントに分類して記述するなにか良いまとめ方あれば教えて頂きたくお願いします。

編集 削除
raki  URL  2004-11-24 12:16:55  No: 117762  IP: [192.*.*.*]

一つのクラスに記述するなら、約300あるメソッドを
#Region 〜 #End Region
を使って機能別に分類してはいかがでしょう。

また、VB.NETでもモジュールは使えますので、
同じように15のモジュールを用意するとか。

編集 削除
hiroshi  2004-11-24 16:32:04  No: 117763  IP: [192.*.*.*]

raki様回答ありがとうございます。
一つのクラスを複数のモジュールに分けて記述する事ができるのですか?
具体的なやり方を教えていただけませんか?

編集 削除
raki  URL  2004-11-24 17:51:16  No: 117764  IP: [192.*.*.*]

まず質問なのですが、
> .NETに移植しクラス化
というのは、VB.NETに移植し、
15の標準モジュールを1つのクラスにまとめる、という意味でしょうか?

VB.NETに移植するのであれば、
VB6.0の標準モジュールと同じように、VB.NETでも『モジュール』が使えますので、
VB6.0と同じように15のモジュールファイルに記述すれば、と思ったのですが、
> クラス化しようとしているのですが
とあるので、おそらく『モジュール』ではいけない何らかの理由があると推測し、かつ
> そのほとんどを一つのクラスの中に記述しなければならないので
とありましたので
#Region 〜 #End Region
を使う方法をご提案しました。

で、もう一つ質問なのですが、
> クラスを複数のドキュメントに分類して記述するなにか
とありますが、数百あるプロシージャを機能別に分けれるのであれば、
機能別にクラスファイルを作成してはいけないのですか?
15の標準モジュールに数百のプロシージャが記述されているのですよね?
それを一つのクラスにまとめなければいけない理由が分かりません。
15のクラスに分けてはいけないのでしょうか。

また、一つのクラスを複数のファイルにまたがって記述(定義)することはできません。
機能別に小分けするのが一番でしょう。

編集 削除
hiroshi  2004-11-24 20:59:29  No: 117765  IP: [192.*.*.*]

raki様ご検討ありがとうございます。説明不測で済みません。
私の作ったソフトはあるゲームの次の手を考えるもので、それをVBで数万行(実際に数えたわけではありませんが、ifの数が約8000個ありました)で記述してあります。Subプロシジャー、Functionプロシジャーあわせて約300あります。機能ごとに15の標準モジュールに分けたと書きましたが、そういう意味もありますが、プログラムの流れに沿って複数のモジュールに分けたと言っても良いです。実は昨年から.NETに置き換えを始めて、プログラム全体の構造はそのままですが完了しています。マンマシーンインターフェースのところを除けばおそらく95%はそのままです。
私がこれからやろうとしているのは、今まで作った次の手を考えるプログラムを一つの部品として、次の次の手、更に次の次の次の手、、、、、という風に発展させようというものです。
必ずしもクラス化する事が絶対という事ではなく、外に方法がないわけではありませんがクラス化できれば便利だと思ったのです。ただ、あまりにクラスが大きくなりそうなので後の作業が便利なように複数のファイルに分けて記述できないかと考えて質問しました。
ご回答では一つのクラスを複数のファイルにまたがって記述することはできないという事なので、この方法はあきらめることにします。
いろいろありがとうございました。

編集 削除
めだか  2004-11-26 11:26:06  No: 117766  IP: [192.*.*.*]

時期VS2005ではひとつのクラスを複数のファイルに分けて記述したりできるようになるみたいです。

編集 削除