加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-17 00:19:29 所属栏目:大数据 来源:网络整理
导读:我试图找出在我正在创建的嵌套类中设置和获取属性的最佳方法. 我有一个类,Car有一个嵌套类ControlPanel,并希望使控制面板的属性只能访问Car和Control Panel类. (即:不在程序集或命名空间内,不在应用程序中将使用类库)…我已将类访问属性更改为朋友,受保护的
我试图找出在我正在创建的嵌套类中设置和获取属性的最佳方法.

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

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

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

有什么想法吗?

Public Class Car

    Dim cp As New ControlPanel

    Public Class ControlPanel
      Private _Speedometer As Integer = 0
      Private _Odometer As Integer = 0

      Public Property Speedometer() As Integer
        Get
            Return _Speedometer
        End Get
        Protected Set(ByVal value As Integer)
            _Speedometer = value
        End Set
      End Property

      Public Property Odometer() As Integer
        Get
            Return _Odometer
        End Get
        Protected Set(ByVal value As Integer)
            _Odometer = value
        End Set
     End Property

    End Class

   Public Sub Drive()

        cp.Odometer = 76323
        co.Speedometer = 86

   End Sub

End Class
你可以这样做:
Public Class Car

  Private Interface IControlPanel
    Property Odometer As Integer
    Property Speedometer As Integer
  End Interface

  Public Class ControlPanel
    Implements IControlPanel
    Public ReadOnly Property Odometer As Integer
      Get
        Return CType(Me,IControlPanel).Odometer
      End Get
    End Property
    Public ReadOnly Property Speedometer As Integer
      Get
        Return CType(Me,IControlPanel).Speedometer
      End Get
    End Property
    Private Property IControlPanel_Odometer As Integer Implements IControlPanel.Odometer
    Private Property IControlPanel_Speedometer As Integer Implements IControlPanel.Speedometer
  End Class

  Dim cp As IControlPanel = New ControlPanel()

  Public Sub Drive()
    cp.Odometer = 76323
    cp.Speedometer = 86 
  End Sub

End Class

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读