2017-07-06 9 views
0

私は、基本クラスBにアクセスさせたいいくつかの保護されたメンバーを持つクラスAを持っています。クラスBをクラスAのネームスペースに入れたいと思っていますか?基本クラスの名前空間に継承

Namespace BLL 
    Public Class A 
     Protected varA As Integer 
     Protected varB As String 
    End Class 
End Namespace 

Namespace BLL.A 
    Public Class B 
     Inherits A 
     Public Sub setA() 
     varA = 3 
     varB = "test" 
     End Sub 
    End Class 
End Namespace 

私はそのようにように、クラスBにアクセスできるようにしたい:私はこれを行うと

BLL.A.B.setA() 

私はエラー「『A』は、名前空間BLLに曖昧である」取得しています。私は間違って何をしていますか?

+0

おそらく不可能であり、推奨されていません。参照:https://stackoverflow.com/a/18731452/3740093 –

答えて

2

Aは名前空間ではなく、クラスです。あなたはクラスAの中にBを入れなければならないでしょう。

Namespace BLL 
    Public Class A 
     Protected varA As Integer 
     Protected varB As String 
    End Class 
End Namespace 

Namespace BLL 
    Partial Public Class A 
     Public Class B 
      Inherits A 
      Public Sub setA() 
       varA = 3 
       varB = "test" 
      End Sub 
     End Class 
    End Class 
End Namespace 

私はこれをお勧めしません。フレームワークは、クラスの中にクラスを持つことはめったにありません。特に公共のクラスです。しかし、私はインターネット上のランダムな人です。

名前空間が本当に必要な場合は、クラスAの名前をCarBaseの名前に変更し、他のクラスをCarという名前空間に入れます。

+0

助けてくれてありがとう。多分、私はこれをどのように構造化したいのか考え直す必要があると思います。私が達成しようとしている主なことは、クラスAをメインクラス(例えばCar)にして、そのすべてにCar.Ford、Car.Chevyなどのサブクラスにアクセスすることです。 – OhlPatrol

+0

私は基底クラスCarBaseまたは名前空間HtmlControlsの内部にあるクラス[HtmlControl](https://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlcontrol(v = vs.110).aspx) sと一緒に)。 –

関連する問題