gpt4 book ai didi

c# - ReSharper 使用 SqlDataReader 显示警告

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:08 25 4
gpt4 key购买 nike

当我写这样的东西时:

using (var connection = new SqlConnection("ConnectionString"))
{
using(var cmd= new SqlCommand("Command"))
{
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
}
}
}
}

ReSharper 在 reader.Read() 上显示警告,并告知 reader 可以是 null

但是什么情况下可以为null呢?据我所知,如果命令不返回任何内容,则 reader 不为空,它什么也没有。

最佳答案

鉴于这在 YouTrack 上被报告为错误(两次 - herehere),看起来 R# 附带的无效注释在这方面存在缺陷。

查看您的 ReSharper_installation_dir\Bin\ExternalAnnotations 文件夹 - 这是安装注释文件的位置。对我来说,在 v5 中,这里有一个文件 System.Data\System.Data.Nullness.xml,其中包含以下注释:

<member name="M:System.Data.SqlClient.SqlCommand.ExecuteReader">
<attribute ctor="M:JetBrains.Annotations.CanBeNullAttribute.#ctor" />
</member>

如果您通过自己的检查确信这是错误的,并且 SqlCommand.ExecuteReader 永远不会返回 null,则您应该将其更改为

<member name="M:System.Data.SqlClient.SqlCommand.ExecuteReader">
<attribute ctor="M:JetBrains.Annotations.NotNullAttribute.#ctor" />
</member>

关于c# - ReSharper 使用 SqlDataReader 显示警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035593/

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