【发布时间】:2011-04-06 00:44:33
【问题描述】:
我在两个独立的库中有两个类(一个 VB,一个 C#):
Public Class Item
...
Public Overridable ReadOnly Property TotalPrice() As String
Get
Return FormatCurrency(Price + SelectedOptionsTotal())
End Get
End Property
End Class
和
public class DerivedItem : Item {
...
public new Decimal TotalPrice
{
get { return Price + OptionsPrice; }
}
}
如您所见,DerivedItem.TotalPrice 遮蔽了Item.TotalPrice 属性。但是,当尝试检索 DerivedItem.TotalPrice 值时,我仍然得到基础对象的 TotalPrice 值。
为什么DerivedItem的属性没有返回?
编辑
我确实发现了问题!我在通过 AJAX 返回的 JSON 字符串中得到了错误的值。事实证明,TotalPrice is 被正确返回,它只是被稍后在 JSON 字符串中进行的阴影属性调用覆盖。那么,我的新问题是如何防止阴影属性被序列化?
(此问题已调整范围here)
【问题讨论】:
标签: asp.net inheritance polymorphism shadowing