我正在运行一个asp.net核心应用程序,我有一个类,它有一个字符串数组成员,我已经声明为nullable。当我在其他类中使用数组元素时,编译器只对数组的第一个成员给出可能为null引用的引用警告,而对其他成员则没有。
PS对不起的代码格式不好。没有语法错误
我收到一个警告,提示DummyData[0]可能为空值,但DummyData[1]和其他数据没有。
public class Dummy
{
public string[]? DummyData { get; set; }
}
字符串
这就是我使用DummyData的地方
result += DummyDataConstants.SOM + DummyDataConstants.cmdMainArray[(int)DummyDataConstants.CMD_MAIN_ID_e.CMD_MAIN_REQ_LOG]
+ DummyDataConstants.FSP + DummyDataConstants.SMART_CODE + DummyDataConstants.FSP + commandParams.DummyData[0] // warning given for commandParams.DummyData[0]
+ DummyDataConstants.FSP + commandParams.DummyData[1] // no warning here
+ DummyDataConstants.FSP + commandParams.MediaClientType + DummyDataConstants.FSP + commandParams.DummyData[2] + DummyDataConstants.FSP + newGuid.ToString() + DummyDataConstants.FSP + DummyDataConstants.EOM
型
1条答案
按热度按时间wh6knrhe1#
只有当您的代码可能解引用
null
时,编译器才会发出警告。在这种情况下,只有在commandParams.DummyData[0]
处才认为可能,因为如果它是(即commandParams.DummyData == null
)您将在此处遇到NullReferenceException
,因此,所有其他尝试要么不会发生,要么将与绝对非空引用一起工作。如果您将使用null-条件元素访问操作符对于第一个元素,您将看到警告“transfered”到下一个元素:字符串
sharplab.io