- PR -

継承元と集約(?)関係にあるクラスのメンバへのアクセスは?

1
投稿者投稿内容
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2008-04-16 12:03
失礼いたします。

'継承元クラス**********************************************
Public Class Moto
  Inherits OOMoto

  Private Shared cSawariTai As New SawariTai

  Public Shared ReadOnly Property gSawaruzo() As SawariTai
    Get
      Return cSawariTai
    End Get
  End Property
End Class

'継承先クラス*********************************************
Public Class Saki1
  Inherits Moto

  Private Shared sukiKatte As String

  Public Shared Property gSukiKatte() As String
    Get
      Return sukiKatte
    End Get
    Set(ByVal value As String)
      sukiKatte= value
    End Set
  End Property
End Class

'継承元と集約関係のクラス**********************************
Public Class Sawaritai
  Private Shared koreSawaritai As String

  Public Shared Property gsDouzoSawatte() As String
    Get
      Return koreSawaritai
    End Get
    Set(ByVal value As String)
      koreSawaritai = value
    End Set
  End Property

'実際に使うクラス******************************************
Public Class Negai
    ・・・・・・
    Saki1.gSukiKatte = "つんつん"
    Saki1.gSawaruzo.douzoSawatte = "ぷにぷに" '*ダメ*


Saki1,Saki2・・・・・には必ずMotoのメンバがあり、
Moto(OOMotoを継承)には必ずSawaritaiのメンバがあります。

Negaiにおいて 
Saki1.gSawaruzo.gsDouzoSawatteのところで、
'インスタンスを経由する共有メンバ、定数メンバ、列挙型メンバ、または入れ子に
された型へのアクセスです。正規の式は評価されません'
とでます。
確かに言われてることはわかります。

プログラム設計の質問なのですが、
この場合(件名の事をしたい場合)は
直接 Sawaritai.gsDouzoSawatte = "ぷにぷに" とするしかないでしょうか?
それならgSawaruzoは不要になりますよね?
ならcSawariTai As New SawariTaiも・・・
MotoとSawaritaiの表現をどうすればいいのでしょうか?
ご教授願います。







[ メッセージ編集済み 編集者: 108 編集日時 2008-04-16 12:05 ]
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2008-04-16 12:38
まず一つお聞きしたいです。
サンプルに Shared が頻出していますが、何故 Shared にしているのでしょうか?
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2008-04-16 13:50
引用:

Hongliangさんの書き込み (2008-04-16 12:38) より:
サンプルに Shared が頻出していますが、何故 Shared にしているのでしょうか?



ありがとうございます。

メインのフォームの部品のプロパティとして、
その値を保存しておき、メインフォームから開く
ダイアログなど他複数クラスからもその値を参照・更新などしたいためです。

あと、ただ変数を返すだけなのにプロパティにする必要はないのでしょうか。

1

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