我看到ReSharper警告'可能的NullReferenceException'在第二行的代码中:
var cookie = HttpContext.Current.Response.Cookies[CookieName];
cookie.Expires = DateTime.Now.AddDays(-1);
我检查了MSDN中的HttpCookieCollection.Get()方法,它说'如果指定的cookie不存在,则此方法会创建一个具有该名称的新cookie。' 。所以看起来NullReferenceException不会发生。
这只是ReSharper的错误还是我遗漏了什么?
答案 0 :(得分:2)
如果在ASP.NET上下文之外执行此代码,所以看起来NullReferenceException不会发生。
HttpContext.Current
将为null,例如单元测试,控制台或桌面应用程序。
答案 1 :(得分:0)
HttpCookieCollection.Get()在未从HttpResponse调用时会导致空引用异常。因此,ReSharper在技术上是正确的,可能会发生异常,尽管在您的代码示例中不会发生。 This so question显示了可以使用空重围的示例。