我正在开发一个将在多个项目中使用的类库。
在我的类库中,我有一个“Shape”类,它有许多属性。 其中一个属性是“Dimensions”,它返回一个具有“Height”“Width”和“Depth”属性的类。
我如何禁止在编辑器中查看Dimension类,同时在类库中自由使用?
我在类文件中放了一个命令,但这会将它隐藏在库和我的应用程序中。
<ComponentModel.EditorBrowsable(ComponentModel.EditorBrowsableState.Never)> _
我还将class acess修饰符更改为Friend,但是当在类库外部调用时,这会阻止公共访问Shape类中的Property。
我想做的就是阻止在类库外部创建Dimension类的实例。
感谢。
这是我想要实现的代码功能:
Interface IShape
ReadOnly Property Properties() As ShapeProperties
End Interface
Public Class Shape
Implements IShape
Dim _Properties As New ShapeProperties(0, 0, 0)
Sub New()
_Properties = New ShapeProperties(3, 4, 5)
End Sub
Public ReadOnly Property Properties() As ShapeProperties Implements IShape.Properties
Get
Return _Properties
End Get
End Property
End Class
Friend Class ShapeProperties
Dim _Height As Integer = 0
Dim _Width As Integer = 0
Dim _Depth As Integer = 0
Friend Sub New(ByVal h As Integer, ByVal w As Integer, ByVal d As Integer)
_Height = h
_Width = w
_Depth = d
End Sub
Private ReadOnly Property Height() As Integer
Get
Return _Height
End Get
End Property
Private ReadOnly Property Width() As Integer
Get
Return _Width
End Get
End Property
Private ReadOnly Property Depth() As Integer
Get
Return _Depth
End Get
End Property
End Class
我无法在上面的代码中编译类库。我希望ShapeProperties只能在Shape类中访问,而不能单独访问。我能够解决这个问题的唯一方法是更改ShapeProperties的访问属性,这不是我想要的。
ClassLibrary.Shape可以,但是 ClassLibrary.Properties不是。
感谢。
答案 0 :(得分:1)
您可以创建一个公共接口(IShape
)并创建一个实现它的私有类。