none
Property について RRS feed

  • 質問

  • 現在このようなプロパティーを作成したいと思っています。(処理はクラスに記入したいです。)
    フォームで***クラスを定義して使用したいと思います。(同じ項目でBODYもあります。)
    プロパティー(すべてリードオンリー)
     ***.HEAD.TIME.SAKUSEI
     ***.HEAD.TIME.SAKUJYO
     ***.HEAD.TIME.KOUSIN
     ***.HEAD.NAME
     ***.HEAD.PATH
     ***.HEAD.KANRYOUFLG.SOUSIN 
     ***.HEAD.KANRYOUFLG.ASSYUKU 
     ***.HEAD.KANRYOUFLG.SAKUJYO 
     処理
     ***.HEAD.SUB.KOUSIN
     ***.HEAD.SUB.ASSYUKU
     ***.HEAD.SUB.SAKUJYO
     ***.HEAD.SUB.SOUSIN

    プロパティーにプロパティーを定義するなどしたのですが、これが複雑になったり、サブフォームがフォーム側から定義できたりして挫折。
    Structure を使用したらいい感じにフォームから参照はできるのですが。クラス側で値をどう定義したらよいか不明です。(下記がコードです)
    したいことは、処理の結果をプロパティーに反映し、プロパティーで確認できるようにしたいです。
    フォーム側では値の変更はできないが、現在の状況を確認することと、クラスを通して処理を行うことができるようにしたいです。

     Public ReadOnly Property HEAD() As Data
            Get
                Return ?
            End Get
     End Property
        Public Structure Data
            Public Time As Kata
            Public Name As String
            Public Path As String
            Public KANRYOUFLG As 省略
        End Structure
          Public Structure Kata
             Public SAKUSEI As String
             Public SAKUJYO As String
             Public KOUSIN As String
         End Structure

    VB2005の環境です。すいませんがアドバイスお願いします。
    2009年2月11日 14:35

回答

  •  
    Friend Class xxxx  
        Private C_Data As New ClassData  
        Private C_Sub As New ClassSub(C_Data)  
        Private C_TIME As New ClassTIME(C_Data)  
     
        Friend ReadOnly Property NAME() As String  
            Get  
                Return C_Data.NAME  
            End Get  
        End Property  
     
        Friend ReadOnly Property SUBx() As ClassSub  
            Get  
                Return C_Sub  
            End Get  
        End Property  
     
        Friend ReadOnly Property TIME() As ClassTIME  
            Get  
                Return C_TIME  
            End Get  
        End Property  
     
        Friend Class ClassTIME  
            Private data As ClassData  
     
            Public ReadOnly Property SAKUSEI() As String  
                Get  
                    Return data.SAKUSEI  
                End Get  
            End Property  
     
            Public ReadOnly Property SAKUJYO() As String  
                Get  
                    Return data.SAKUJYO  
                End Get  
            End Property  
     
            Public Sub New(ByVal c_Data As ClassData)  
                data = c_Data 
            End Sub  
        End Class  
     
        Friend Class ClassSub  
            Private data As ClassData  
     
            Friend Sub SAKUSEI()  
                data.SAKUSEI = "作成" 
            End Sub  
     
            Friend Sub SAKUJYO()  
                data.SAKUJYO = "削除" 
            End Sub  
     
            Friend Sub NAME()  
                data.NAME = "名前" 
            End Sub  
     
            Public Sub New(ByVal c_Data As ClassData)  
                data = c_Data 
            End Sub  
        End Class  
     
        Friend Class ClassData  
            Friend SAKUSEI As String  
            Friend SAKUJYO As String  
            Friend NAME As String  
        End Class  
    End Class  
     
    クラスの中にクラスを作ります。
    色々なクラスからデータを参照したいので、データのクラスを作ります。
    はずれてたら、すみません。
    • 回答としてマーク sk7474 2009年2月23日 9:06
    2009年2月12日 9:19

すべての返信

  •  
    Friend Class xxxx  
        Private C_Data As New ClassData  
        Private C_Sub As New ClassSub(C_Data)  
        Private C_TIME As New ClassTIME(C_Data)  
     
        Friend ReadOnly Property NAME() As String  
            Get  
                Return C_Data.NAME  
            End Get  
        End Property  
     
        Friend ReadOnly Property SUBx() As ClassSub  
            Get  
                Return C_Sub  
            End Get  
        End Property  
     
        Friend ReadOnly Property TIME() As ClassTIME  
            Get  
                Return C_TIME  
            End Get  
        End Property  
     
        Friend Class ClassTIME  
            Private data As ClassData  
     
            Public ReadOnly Property SAKUSEI() As String  
                Get  
                    Return data.SAKUSEI  
                End Get  
            End Property  
     
            Public ReadOnly Property SAKUJYO() As String  
                Get  
                    Return data.SAKUJYO  
                End Get  
            End Property  
     
            Public Sub New(ByVal c_Data As ClassData)  
                data = c_Data 
            End Sub  
        End Class  
     
        Friend Class ClassSub  
            Private data As ClassData  
     
            Friend Sub SAKUSEI()  
                data.SAKUSEI = "作成" 
            End Sub  
     
            Friend Sub SAKUJYO()  
                data.SAKUJYO = "削除" 
            End Sub  
     
            Friend Sub NAME()  
                data.NAME = "名前" 
            End Sub  
     
            Public Sub New(ByVal c_Data As ClassData)  
                data = c_Data 
            End Sub  
        End Class  
     
        Friend Class ClassData  
            Friend SAKUSEI As String  
            Friend SAKUJYO As String  
            Friend NAME As String  
        End Class  
    End Class  
     
    クラスの中にクラスを作ります。
    色々なクラスからデータを参照したいので、データのクラスを作ります。
    はずれてたら、すみません。
    • 回答としてマーク sk7474 2009年2月23日 9:06
    2009年2月12日 9:19
  • 遅れてすいません。
    ありがとうございます
    見た感じでは、いまいちどうなっているかわかりませんので、いじってみて確認してみます。
    2009年2月16日 12:42
  • こんにちは。中川俊輔 です。

    Michael-Kさん、回答ありがとうございます。

    kiRITYANさん、はじめまして。フォーラムのご利用ありがとうございます。
    有用な情報と思われたため、Michael-Kさんの回答へ回答マークをつけさせていただきました。
    追加の質問等ありましたら、ぜひ投稿してみてください。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年2月23日 9:10