c# - How to change value of DefaultValue attribute in subclass -
i'm not sure if want possible, figured i'd ask.
i have abstract base class has property that's decorated defaultvalue attribute, so:
public abstract mybaseclass { [defaultvalue( "some value" )] public string stringproperty { { return istringproperty; } set { istringproperty = value; } protected string istringproperty = "some value"; // other code here } i want derive child class mybaseclass, want value in defaultvalue attribute, default value of property, different. end, have added default constructor child class, follows:
public class mychildclass : mybaseclass { // type specific properties & fields here public mychildclass() : base() { istringproperty = "new value"; } // other code here } how change value of defaultvalue attribute in derived class it's "new value"?
if property virtual override , apply defaultvalue it.
[defaultvalue( "new value" )] public override string stringproperty { { return istringproperty; } set { istringproperty = value;} } if not, need shadow property new keyword , apply new defaultvalue
[defaultvalue( "new value" )] public new string stringproperty { { return istringproperty; } set { istringproperty = value;} } in both cases don't need provide new implementation. delegate call base.stringproperty;
Comments
Post a Comment