blazor - EditorRequired 属性

问题描述 投票:0回答:2
 @code {
     [Parameter, EditorRequired] 
     public Trail Trail { get; set; } = default!;
 }

这是什么意思

  1. EditorRequired
  2. public Trail Trail { get; set; } = default!;
    (为什么默认,为什么是感叹号?)
asp.net-core blazor
2个回答
14
投票

这是什么意思

  1. 编辑必填

向组件的用户提示

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

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

  1. public Trail Trail { 获取;放; } = 默认!;
    (为什么是默认,为什么是感叹号?)

这是减少警告的一种方法。当您省略

= default!;
时,您将收到警告:

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

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

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


0
投票

亨克霍尔特曼是正确的。

此外,您可以通过使用 required 关键字来消除设置初始值和警告的需要,如以下代码所示:

 [Parameter, EditorRequired] 
 public required Trail Trail { get; set; }
© www.soinside.com 2019 - 2024. All rights reserved.