嵌套类.NET中属性的访问方法

前端之家收集整理的这篇文章主要介绍了嵌套类.NET中属性的访问方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图找出在我正在创建的嵌套类中设置和获取属性的最佳方法.

我有一个类,Car有一个嵌套类ControlPanel,并希望使控制面板的属性只能访问Car和Control Panel类.

(即:不在程序集或命名空间内,不在应用程序中将使用类库)…我已将类访问属性更改为朋友,受保护的朋友,私有,公共,但任何组合都不匹配我的预期结果.

我想更改类的Drive()Sub中的属性,如下所示.

有什么想法吗?

  1. Public Class Car
  2.  
  3. Dim cp As New ControlPanel
  4.  
  5. Public Class ControlPanel
  6. Private _Speedometer As Integer = 0
  7. Private _Odometer As Integer = 0
  8.  
  9. Public Property Speedometer() As Integer
  10. Get
  11. Return _Speedometer
  12. End Get
  13. Protected Set(ByVal value As Integer)
  14. _Speedometer = value
  15. End Set
  16. End Property
  17.  
  18. Public Property Odometer() As Integer
  19. Get
  20. Return _Odometer
  21. End Get
  22. Protected Set(ByVal value As Integer)
  23. _Odometer = value
  24. End Set
  25. End Property
  26.  
  27. End Class
  28.  
  29. Public Sub Drive()
  30.  
  31. cp.Odometer = 76323
  32. co.Speedometer = 86
  33.  
  34. End Sub
  35.  
  36. End Class
你可以这样做:
  1. Public Class Car
  2.  
  3. Private Interface IControlPanel
  4. Property Odometer As Integer
  5. Property Speedometer As Integer
  6. End Interface
  7.  
  8. Public Class ControlPanel
  9. Implements IControlPanel
  10. Public ReadOnly Property Odometer As Integer
  11. Get
  12. Return CType(Me,IControlPanel).Odometer
  13. End Get
  14. End Property
  15. Public ReadOnly Property Speedometer As Integer
  16. Get
  17. Return CType(Me,IControlPanel).Speedometer
  18. End Get
  19. End Property
  20. Private Property IControlPanel_Odometer As Integer Implements IControlPanel.Odometer
  21. Private Property IControlPanel_Speedometer As Integer Implements IControlPanel.Speedometer
  22. End Class
  23.  
  24. Dim cp As IControlPanel = New ControlPanel()
  25.  
  26. Public Sub Drive()
  27. cp.Odometer = 76323
  28. cp.Speedometer = 86
  29. End Sub
  30.  
  31. End Class

它使用嵌套在Car类中的私有接口与ControlPanel中的私有实现和别名成员.这样,只有Car可以访问界面成员.

猜你在找的VB相关文章