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

标签 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);
    }

最佳答案

来自 blazor documentation :

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

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

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

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

关于blazor - 是否有充分的理由在 SetParameters 方法中而不是直接初始化属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199294/

相关文章:

.net-core - Blazor 预览版 9/mono-wasm 内存访问越界 : max string size for DotNet. invokeMethod?

blazor如何使用jquery库

c# - 获取 ML NET 模型 zip 文件流时 Blazor 出现错误

blazor - 使用特定格式绑定(bind) Blazor 中的值

c# - 如何在带有 Razor Pages 的 ASP.NET Core 2.1 中使用或处理并非为并发而设计的服务器端 SDK

.net - Blazor 错误 : The SSL connection could not be established, 请参阅内部异常

c# - CS1929 'IHttpClientFactory' 不包含 'GetFromJsonAsync' 的定义

blazor - 如何在 MudBlazor 中调整表格的列宽

c# - 如何从代码更新 Blazor 静态布局

azure - 如果我选中了 ASP Net Core Hosted Option,是否可以部署 Blazor Webassemble?