假设我创建了一个可以继承的类“Planet”。继承的目的之一是创建具有不同默认属性值的模板。例如:
Public Sub New
MyBase.New
MyBase.ForeColor = Red
MyBase.Name = "Mars"
etc.
End Sub
现在,要停止 InitializeComponent 方法中的默认序列化,有两种方法:
如果我使用“DefaultValue”属性实现了属性,并使其可覆盖,则可以用新值覆盖该属性。这样做的问题是,没有办法只使属性可覆盖,而不是整个属性。
我可以使用受保护的 Reset'PropertyName' 和 ShouldSerialize'PropertyName' 方法来实现每个属性。然而,这有点让人头疼。
通常,确保覆盖您的基类的人能够更改属性的默认值是否是一个重要的考虑因素?