【问题标题】:Virtual property with private set具有私有集的虚拟财产
【发布时间】:2010-01-28 13:30:04
【问题描述】:

我正在尝试在 MVC 项目中使用流利的 nhibernate...我对 nhibernate 和流利非常陌生...似乎实体应该具有虚拟属性,并且集合应该是私有的 ID...我使用 vb 语言...所以尝试使用可覆盖...它给出了错误...

Public Overridable Property DesignId() As Integer
    Get

    End Get
    Private Set(ByVal value As Integer)

    End Set
End Property

它说属性不能被覆盖,因为它有一个私有访问器......不知道如何去做......网络中的所有教程都在 c# 中......我的客户特别是在 vb 中......谢谢提前...

【问题讨论】:

    标签: asp.net-mvc vb.net fluent-nhibernate


    【解决方案1】:

    如何让 setter 受到保护,以便覆盖的类可以看到它...

    即:

    Private _designId as Integer
    Public Overridable Property DesignId() As Integer
        Get
            Return _designId
        End Get
        Protected Set(ByVal value As Integer)
            _designId = value
        End Set
    End Property
    

    【讨论】:

      【解决方案2】:

      特别是对于 VB,如果你让 setter 受保护,那应该避免给你错误(因为受保护允许你覆盖设置)。

      【讨论】:

        【解决方案3】:

        使用受保护而不是私有。使用 Public 也可以,如果您的设计可以使用 - Set 不必是 Private,这只是很好的设计。

        Private 错误是 VB 限制,这在 C# 中有效。 VB 需要同时覆盖 getter 和 setter,而 C# 不需要。

        【讨论】:

          猜你喜欢
          • 2023-03-17
          • 2020-08-30
          • 2016-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多