blazor - EditorRequired 属性

Ven*_*kat 5 asp.net-core blazor

 @code {
     [Parameter, EditorRequired] 
     public Trail Trail { get; set; } = default!;
 }
Run Code Online (Sandbox Code Playgroud)

这是什么意思

  1. EditorRequired
  2. public Trail Trail { get; set; } = default!;(为什么默认,为什么用感叹号?)

Hen*_*man 10

这是什么意思

  1. 编辑必填

这是对组件用户的提示,该Trail参数是必需的参数。当您“忘记”Trail 时,<MyComponent />您会收到警告,并在该用法下看到一些波浪线。
构建输出中的警告是

RZ2012 Component 'MyComponent' expects a value for the parameter 'Trail', but a value may not have been provided.

  1. 公共踪迹踪迹{得到; 放; } = 默认!;
    (为什么默认,为什么用感叹号?)

这是减少警告的一种方法。当您省略时,= default!;您将收到警告:

CS8618 Non-nullable property 'Trail' must contain a non-null value when exiting constructor.

这两个功能共同提供了一种在 Blazor 中使用可空引用类型的合理方法。它不是密封的,您仍然可以获得空引用异常。但不再那么容易了。

您这里拥有的是标准模式和最佳实践。