Visual Studio为什么将新创建的数组键入为可空的?

问题描述 投票:1回答:1

我正在编写具有通用类型TVal的函数。我写了这行:

var zeroBased = new TVal[size];

然后在Visual Studio(VS)中,我使用alt + enter将var替换为显式类型。这是我得到的:

TVal[]? zeroBased = new TVal[size];

我很惊讶地发现?运算符,指示该类型可能为空。我以为,假设使用new创建该类型时,该类型永远不会为null,并且这样做可能会很安全:

TVal[] zeroBased = new TVal[size];

是否存在在C#中实例化新数组可以使您返回null的情况?

注意:没有?,代码似乎可以正常编译,我只是被VS的建议所吸引...

c# arrays visual-studio new-operator nullable
1个回答
0
投票

C#8具有允许您根据在项目中设置的上下文使用可为空的类型。您可以找到文档Here

启用它的一种方法是在项目文件中使用<Nullable>enable</Nullable>条目。如果有,那么当您转换为显式变量时,它将选择使用可为空的类型。

© www.soinside.com 2019 - 2024. All rights reserved.