none
ソースコードの分割について RRS feed

  • 質問

  • VB2010でプログラムを作成中ですが、いろいろな処理をするようにしていると当然ながらソースコードの行が多くなりデバックなどを実施すると先頭の方へ行ったり、最後の行へ行ったりとなります。

    そこで、ある程度同じような処理ごとにソースコードを分割して作成したいのですが、可能でしょうか。

    なお、変数名・定数などは分割したソースコードで共通使用を想定しています。

    可能でしたらばその手法を教えていただけないでしょうか。

    2011年11月19日 5:10

回答

  • 外池と申します。

    「Partial」というキーワードを使うと、一つのクラスを複数のファイルに分けて記述して定義することができます。

    http://msdn.microsoft.com/ja-jp/library/yfzd5350(v=VS.100).aspx

    「なお、変数名・定数などは・・・」の部分のご要望については、書かれておられるプログラム全体の構成がどのようになっているのかが不明なので、現時点ではノーコメントとさせてください。


    (ホームページを再開しました)
    • 回答としてマーク mori mori 2011年11月19日 7:34
    2011年11月19日 5:31

すべての返信

  • 同一のプロジェクト内であればClassやStructureの前にPartialと記述することで可能ですよ。

    'ファイル1に記述
    Friend Class TestClass
        Public Sub New()
            Hoge = "あいうえお"
        End Sub
    
        Private Hoge As String
        Private Const Fuga As String = "かきくけこ"
    End Class
    
    'ファイル2に記述
    Partial Friend Class TestClass
    
        Public Sub Test()
            System.Windows.Forms.MessageBox.Show(Hoge)
            Hoge = Fuga
            System.Windows.Forms.MessageBox.Show(Hoge)
        End Sub
    End Class
    


    上記例だと、ファイル2側に記述したコードはファイル1側で宣言したプライベートな変数、定数などにアクセスできます。

    #VBだと同一ファイル内で分割も可能です


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
    • 回答としてマーク mori mori 2011年11月19日 7:20
    • 回答としてマークされていない mori mori 2011年11月19日 7:26
    • 回答としてマーク mori mori 2011年11月19日 7:26
    • 回答としてマークされていない mori mori 2011年11月19日 7:30
    2011年11月19日 5:30
  • 外池と申します。

    「Partial」というキーワードを使うと、一つのクラスを複数のファイルに分けて記述して定義することができます。

    http://msdn.microsoft.com/ja-jp/library/yfzd5350(v=VS.100).aspx

    「なお、変数名・定数などは・・・」の部分のご要望については、書かれておられるプログラム全体の構成がどのようになっているのかが不明なので、現時点ではノーコメントとさせてください。


    (ホームページを再開しました)
    • 回答としてマーク mori mori 2011年11月19日 7:34
    2011年11月19日 5:31
  • ご回答いただきありがとうございます。

    一部のソースコードをもう一つのファイルに移動して動作することを確認できました。

    どうもありがとうございました。

    2011年11月19日 7:31
  • ご質問の趣旨からすると、本当にそれで本質的な解決になっているのでしょうか? まず、Partialは長いソースを分割して複数のファイルに分けることを目的としていません。結果的にそういう形になるので誤解が多いのですが、VBでもC#でも1つのファイル内でPartialを用いて分割することができます。
    一つのソースコード、おそらく一つのクラスだと思うですが、それをいくらPartialで分割しようとも一つのクラスには変わりありません。結果的に巨大で扱いにくいクラスに成長する可能性があります。
    今回のようにPartialを用いてソースコードを分割して見通しを良くするケースも確かにあるでしょう。しかし、その前に、共通で使う機能は別のクラスに分割して書き出せないか、継承が使えないかなどを考えられた方が良いと思います。もし、検討された後でしたら蛇足です。ごめんなさい。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年11月19日 8:25
    モデレータ