是否有充分的理由在SetParameters方法中而不是直接初始化属性?

时间:2018-11-07 23:11:10

标签: blazor

在下面的代码片段中(取自Blazor示例),StartDate属性在派生的SetParameters方法中进行了初始化,而可以这样进行初始化:

[Parameter] DateTime StartDate { get; set; } = DateTime.Now;  

我想知道这是否仅是样式首选项,还是有充分的理由这样做……

  @functions {
    [Parameter] DateTime StartDate { get; set; }

    WeatherForecast[] forecasts;

    public override void SetParameters(ParameterCollection parameters)
    {
        StartDate = DateTime.Now;
        base.SetParameters(parameters);
    }

}

1 个答案:

答案 0 :(得分:1)

从炽烈的documentation

在设置参数之前,可以覆盖

SetParameters来执行代码。

如果未调用base.SetParameters,则自定义代码可以以任何所需的方式解释传入的参数值。例如,不需要将传入参数分配给类的属性。

因此SetParameters允许您偷偷修改内容。

我猜您正在将值设置为默认值。为此,我会说第一种方法非常好,第二种方法则过分杀人和令人困惑。