gpt4 book ai didi

c# - 为什么此 null 检查会导致 null 取消引用错误?

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:09 24 4
gpt4 key购买 nike

所以基本上我想检查我的 C# 应用程序中是否没有设置设置。代码在这里

if (Default["StudentAccountTypeDefault"] is null) // Crashes after this
{
//
}
else
{
//
}

似乎在空检查时崩溃了。我在那里放置了一个断点,它显示 Default["DefaultStudentAccountType"] 只是一个空字符串。为什么它会因 NullReferenceException 而崩溃?我很确定这就是它崩溃的地方 - 如果我注释掉它按预期工作的 if 语句。

编辑:为了减轻一些困惑。 Sooooo,Default 实际上是 Settings.Default,除此之外,我实际上试图在 Settings() 构造函数中访问它。所以,很明显,在它被初始化之前。哎呀。 “完整”-er 代码如下。

public Settings() {
// // To add event handlers for saving and changing settings, uncomment the lines below:
//
// this.SettingChanging += this.SettingChangingEventHandler;
//
// this.SettingsSaving += this.SettingsSavingEventHandler;
//
if (Settings.Default["DefaultStudentAccountType"] is null)
{

}
else
{

}
}

最佳答案

您应该使用 == 而不是 is 检查,另外根据您的数据类型,您可能需要检查 Default 是否为 null也。试试这个:

if(Default == null || Default["StudentAccountTypeDefault"] == null)
{
}
else
{
}

关于c# - 为什么此 null 检查会导致 null 取消引用错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49367064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com