VB.Net覆盖一个属性

时间:2016-09-27 17:20:23

标签: vb.net properties override

我需要覆盖此属性,以便我可以返回计算值。我没有抛出任何错误,但它没有工作。我究竟做错了什么?任何帮助都会很棒。

这是在基类中。 BalanceValue是一个私有小数。

Public Overrides Property Balance() As Decimal
    Get
        Return CDec(BalanceWithInterest)
    End Get

    Set(balance As Decimal)
        MyBase.Balance = CDec(BalanceWithInterest)
    End Set
End Property

这是派生类。

 Public Function CalculateInterest(interestRate As Double) As Decimal

    Return CDec(MyBase.Balance + (MyBase.Balance * interestRate))

End Function

这就是我想要它返回

{{1}}

1 个答案:

答案 0 :(得分:1)

我不完全确定你在寻找什么,但也许可以试试这段代码。我使用的是Shadows而不是Overrides关键字,因为派生类中的属性参数与父类不同。

  Public Shadows Property Balance(interestRate As Double) As Decimal
    Get
      Return CDec(MyBase.Balance + (MyBase.Balance * interestRate))
    End Get
    Set(balance As Decimal)
      MyBase.Balance = CDec(balance / (1 + interestRate))
    End Set
  End Property