在下面的代码片段中(取自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);
}
}
答案 0 :(得分:1)
从炽烈的documentation:
在设置参数之前,可以覆盖 SetParameters
来执行代码。
如果未调用base.SetParameters,则自定义代码可以以任何所需的方式解释传入的参数值。例如,不需要将传入参数分配给类的属性。
因此SetParameters
允许您偷偷修改内容。
我猜您正在将值设置为默认值。为此,我会说第一种方法非常好,第二种方法则过分杀人和令人困惑。