gpt4 book ai didi

c# - 为什么我不能检查连接字符串上的空引用?

转载 作者:行者123 更新时间:2023-11-30 18:50:21 27 4
gpt4 key购买 nike

可能是一个 C# 菜鸟问题,所以不要喷我。我试图这样做:

if (ConfigurationManager.ConnectionStrings["PrimaryConnectionString"].ConnectionString != null)
{
// ...
}

但我一直收到 System.NullReferenceException。我想既然它返回了一个字符串,我就可以检查 null 并继续。我花了一段时间才找到正确的方法:

ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["PrimaryConnectionString"];
if (cs != null)
{
this.Connection.ConnectionString = cs.ConnectionString;
}

所以在其他情况下,比如检查 Session 对象的某个值,我会像这样检查 null:

if (Session["EmployeeID"] != null)
{
_EmployeeID = System.Convert.ToInt32(Session["EmployeeID"]);
}

所以我只想知道你怎么知道什么时候可以或不能检查 null

最佳答案

您的问题是您正在检查:

ConfigurationManager
.ConnectionStrings["PrimaryConnectionString"]
.ConnectionString

对于空指针。

事实上,

ConfigurationManager
.ConnectionStrings["PrimaryConnectionString"]

为 null,因此,当您尝试取消引用 that 以获取连接字符串时,就会出现异常。实际上,您正在做的是:

null.ConnectionString

这是有问题的。

我倾向于要么避免在单个语句中进行多层取消引用,要么在整个事情周围放置一个异常处理程序以在任何时候捕获问题。

关于c# - 为什么我不能检查连接字符串上的空引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1175952/

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