吹毛求疵 ReSharper 行为,空引用与 Request.Cookie

本文关键字:Request Cookie 引用 ReSharper 行为 吹毛求疵 | 更新日期: 2023-09-27 18:32:24

这确实是一件愚蠢的小事,但我保留肛门,当 R# (6.1) 强调某些内容时,我通常想要"修复"它。 我正在从事一个 MVC4 项目,并使用 cookie 将 ID 值从一个控制器传递到另一个控制器。 我仍然是一个MVC新手,所以也许有更好的方法来做到这一点。 无论哪种方式,我都会检查 cookie 是否存在,然后像这样检索它的值:

var idCookieString = string.Empty;
if(Request.Cookies.AllKeys.Contains("id"))
{
    idCookieString = Request.Cookies["id"].Value;
}

烦恼的是 R# 将 Request.Cookies["id"] 调用为可能的空引用异常,即使我正在检查 cookie 是否存在于 if 语句中。 有没有更好的方法可以在尝试检索 cookie 之前检查它是否存在,或者我应该只对它放置一个 R# 忽略?

吹毛求疵 ReSharper 行为,空引用与 Request.Cookie

R# 不知道 Request.Cookies.AllKeys.Contains("id") 实际上是检查 Request.Cookies["id"]。值将返回任何内容。所以是的,你必须添加一个 R# 忽略或添加一行额外的无用代码:

if (Request.Cookies["id"] != null)

阿法克 没有其他办法。