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

Is there a good reason to initialize a property in the SetParameters method rather than directly?

在下面的代码片段中,取自 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);
    }

}

来自 blazor documentation:

SetParameters 可以被覆盖以在设置参数之前执行代码。

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

上的属性

所以SetParameters允许你偷偷摸摸地修改东西..

我猜您正在将值设置为默认值。为此,我会说第一种方法非常好,第二种方法过度杀伤力和混乱。