public ComplexDynamicProperty( Getter getter, Setter setter, bool useInitialValue = false, object initialValue = null) { this.getter = getter; this.setter = setter; if (useInitialValue) { setter(initialValue); } }