如果我打开了可空引用类型,那么在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;
但是,每次使用它来避免警告时,我都需要执行空检查,即使它实际上不可能是空的。
发布于 2022-06-28 12:36:42
在我的例子中,我使用一个单独的文件来保存我的代码。我遇到了同样的问题。private MudDropContainer<DropItem> container = default!;专门处理文件背后的代码,但在使用@ref="@container"时,我仍然会在剃须刀页面上得到警告。
最后,我完成了这个private MudDropContainer<DropItem>? container = default!;,它确实起了作用。但是我怀疑这个问题更多的是与剃须刀设计师有关,并且可能在稍后的版本中得到解决。
发布于 2022-05-27 15:03:43
您可以告诉编译器,您知道对象不会是空的,如下所示.
private Model addModel = null!;这将禁用警告。
发布于 2022-08-29 18:44:15
宣布它为可空:
private Model? addModel;https://stackoverflow.com/questions/72370553
复制相似问题