3

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

}

4

1 回答 1

2

从 blazor文档

SetParameters可以重写以在设置参数之前执行代码。

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

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

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

于 2018-11-08T13:29:47.420 回答