首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果打开可空引用类型,@ref在Blazor中是否必须为空,以避免警告?

如果打开可空引用类型,@ref在Blazor中是否必须为空,以避免警告?
EN

Stack Overflow用户
提问于 2022-05-24 23:41:57
回答 4查看 1.5K关注 0票数 4

如果我打开了可空引用类型,那么在Blazor中使用@ref引用时,避免警告的最佳做法是什么?

示例:<Modal @ref="addModal"></Model>

private Modal addModal;

将制作:CS8618 Non-nullable field 'addModal' must contain a non-null value when exiting constructor. Consider declaring the field as nullable.

CS8625 Cannot convert null literal to non-nullable reference type.

如果我尝试初始化它,像这样:private Modal addModal = new Modal()

我还是明白:CS8625 Cannot convert null literal to non-nullable reference type.

我可以使引用为空,如下所示:

private Modal? addModal;

但是,每次使用它来避免警告时,我都需要执行空检查,即使它实际上不可能是空的。

EN

回答 4

Stack Overflow用户

发布于 2022-06-28 12:36:42

在我的例子中,我使用一个单独的文件来保存我的代码。我遇到了同样的问题。private MudDropContainer<DropItem> container = default!;专门处理文件背后的代码,但在使用@ref="@container"时,我仍然会在剃须刀页面上得到警告。

最后,我完成了这个private MudDropContainer<DropItem>? container = default!;,它确实起了作用。但是我怀疑这个问题更多的是与剃须刀设计师有关,并且可能在稍后的版本中得到解决。

票数 7
EN

Stack Overflow用户

发布于 2022-05-27 15:03:43

您可以告诉编译器,您知道对象不会是空的,如下所示.

代码语言:javascript
复制
private Model addModel = null!;

这将禁用警告。

票数 1
EN

Stack Overflow用户

发布于 2022-08-29 18:44:15

宣布它为可空:

代码语言:javascript
复制
private Model? addModel;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72370553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档