Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
там различие?
существует. Session.Remove(key)
удаляет запись (оба ключа & значение) из словаря, в то время как Session[key] = null
присваивает значение (который, оказывается, является пустым) к ключу. После бывшего вызова ключ не появится в Session#Keys
набор. Но после последнего, ключ может все еще быть найден в ключевом наборе.
Я пошел бы с, Удаляют, но не может честно сказать, существует ли различие. В предположении может все еще быть пустой ключ, сохраненный для того нулевого значения, но не уверен. Удалите дал бы мне мало сомнения и если это - то, что Вы хотите сделать это чтения лучше в коде также.
Это имеет тот же эффект. Я лично думаю, что Session.Remove
метод действительно выражает намерение программиста лучше.
Здесь некоторые ссылки на документацию относительно MSDN:
"HttpSessionState. Свойство объекта:
Тип Значения свойства: Система. Объект
значение состояния сеанса с указанным именем или нулевая ссылка (Ничто в Visual Basic), если объект не существует".
Самое большое различие - то, как Вы читаете из сессии.
if(Session.ContainsKey["foo"]) { return Session["foo"]; }
или
if(Session["foo"] != null) { return Session["foo"]; }
, Если Вы используете первый метод, устанавливая значение в NULL, не будет работать, и необходимо использовать, удаляют.
при использовании второго метода можно установить значение в NULL.