这真是一件愚蠢的小事,但我是个顽固的人,当 R# (6.1) 下划线时,我通常想“修复”它。我正在处理一个 MVC4 项目,并使用 cookie 将 ID 值从一个 Controller 传递到另一个 Controller 。我仍然是一个 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# 忽略?
最佳答案
R# 不知道 Request.Cookies.AllKeys.Contains("id") 实际上是检查 Request.Cookies["id"].Value 是否会返回任何内容。所以是的,您必须添加一个 R# 忽略或添加一行额外的无用代码:
if (Request.Cookies["id"] != null)
据我所知,没有其他办法。
关于c# - Nitpicky ReSharper 行为,对 Request.Cookies 的空引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10316992/