5

我在第二行的此代码上看到 ReSharper 警告“可能的 NullReferenceException”:

var cookie = HttpContext.Current.Response.Cookies[CookieName];
cookie.Expires = DateTime.Now.AddDays(-1);

我检查了 MSDN 中的 HttpCookieCollection.Get() 方法,它说“如果命名的 cookie 不存在,则此方法会创建一个具有该名称的新 cookie。” . 所以看起来 NullReferenceException 不可能发生。

只是 ReSharper 错误还是我错过了什么?

4

2 回答 2

2

所以看起来 NullReferenceException 不可能发生。

HttpContext.Current如果您在 ASP.NET 上下文之外执行此代码,则将为 null,例如单元测试、控制台或桌面应用程序。

于 2013-05-14T09:21:18.160 回答
0

未从 HttpResponse 调用 HttpCookieCollection.Get() 可能会导致空引用异常。因此,尽管在您的代码示例中不会发生异常,但 ReSharper 在技术上是正确的,即可能会发生异常。 这个so question显示了一个可以使用空引用的示例。

于 2013-07-01T14:57:49.207 回答