为什么使用 Blazor OnInitialized 方法返回基方法

Bar*_*SIH 22 c# blazor

我看到越来越多的 OnInitialized 和 OnInitializedAsync() 返回 base.OnInitialized[Async] 的示例。但为什么?微软网站上的示例包括返回基本方法

protected override Task OnInitializedAsync()
{
    Contact = new();
    return base.OnInitializedAsync();
}
Run Code Online (Sandbox Code Playgroud)

Hen*_*man 25

这不是必需的,您也不应该添加它们,只是为了避免混乱。

那些生命周期方法都是虚空方法。它们的所有意图和目的都是抽象的,但将它们声明为抽象的将需要您覆盖所有它们。

当然,除非另有说明,例如 SetParametersAsync。但是,选择是否以及在何处调用基本实现在很大程度上是逻辑的一部分,请参阅“如果未调用 base.SetParametersAsync”部分。


MrC*_*tis 5

由于这个问题是从其他地方引用的,作为参考,这些方法如下ComponentBase所示:

    protected virtual void OnInitialized()
    {
    }

    protected virtual Task OnInitializedAsync()
        => Task.CompletedTask;

    protected virtual void OnParametersSet()
    {
    }

    protected virtual Task OnParametersSetAsync()
        => Task.CompletedTask;

    protected virtual void OnAfterRender(bool firstRender)
    {
    }

    protected virtual Task OnAfterRenderAsync(bool firstRender)
        => Task.CompletedTask;
Run Code Online (Sandbox Code Playgroud)