/// <summary> /// Initializes a new instance of the <see cref="Property{T}"/> class. /// Constructor for copying. /// </summary> /// <param name="name">Name.</param> /// <param name="description">Description.</param> /// <param name="alias">Alias.</param> /// <param name="examples">Examples.</param> /// <param name="calculator">Calculate func.</param> internal Property( string name, LocalizableString description, string alias, IReadOnlyList <T> examples, IPropertyCalculator <T> calculator) { Name = name; Description = description; Alias = alias; Examples = examples; Calculator = calculator; }
/// <summary> /// Initializes a new instance of the <see cref="Property{T}"/> class. /// Constructor for copying. /// </summary> /// <param name="name">Property name.</param> /// <param name="description">Property description.</param> /// <param name="alias">Property alias.</param> /// <param name="defaultValue">Default value function.</param> /// <param name="examples">Examples.</param> /// <param name="calculator">Calculate property value function.</param> internal Property( string name, string?description, string?alias, IDefaultValue <T> defaultValue, IReadOnlyList <T> examples, IPropertyCalculator <T>?calculator) { Name = name; Description = description; Alias = alias; DefaultValue = defaultValue.AssertArgumentNotNull(nameof(defaultValue)); Examples = examples.AssertArgumentNotNull(nameof(examples)); Calculator = calculator; }
/// <summary> /// Sets property value calculator and returns the same property for builder chaining. /// </summary> /// <param name="calculate">Calculate property value func.</param> /// <returns>The same property for builder chaining.</returns> public Property <T> SetCalculate(Func <IPropertyContainer, T> calculate) { Calculator = new PropertyCalculator <T>(calculate); return(this); }