@code {
[Parameter, EditorRequired]
public Trail Trail { get; set; } = default!;
}
这是什么意思
EditorRequired
public Trail Trail { get; set; } = default!;
(为什么默认,为什么是感叹号?)这是什么意思
- 编辑必填
向组件的用户提示
Trail
是必需参数。当您“忘记”Trail 时,如<MyComponent />
所示,您会收到警告,并在该用法下看到一些波浪线。RZ2012 Component 'MyComponent' expects a value for the parameter 'Trail', but a value may not have been provided.
- public Trail Trail { 获取;放; } = 默认!;
(为什么是默认,为什么是感叹号?)
这是减少警告的一种方法。当您省略
= default!;
时,您将收到警告:
CS8618 Non-nullable property 'Trail' must contain a non-null value when exiting constructor.
这两个功能共同提供了一种在 Blazor 中使用可空引用类型的合理方法。它不是密封的,您仍然可以获得空引用异常。但不再那么容易了。
您这里拥有的是标准模式和最佳实践。
亨克霍尔特曼是正确的。
此外,您可以通过使用 required 关键字来消除设置初始值和警告的需要,如以下代码所示:
[Parameter, EditorRequired]
public required Trail Trail { get; set; }