ASP.NET, удаляющий объект из Сессии?

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

55
задан dove 25 October 2012 в 20:26
поделиться

4 ответа

там различие?

существует. Session.Remove(key) удаляет запись (оба ключа & значение) из словаря, в то время как Session[key] = null присваивает значение (который, оказывается, является пустым) к ключу. После бывшего вызова ключ не появится в Session#Keys набор. Но после последнего, ключ может все еще быть найден в ключевом наборе.

121
ответ дан vegemite4me 26 November 2019 в 17:39
поделиться

Я пошел бы с, Удаляют, но не может честно сказать, существует ли различие. В предположении может все еще быть пустой ключ, сохраненный для того нулевого значения, но не уверен. Удалите дал бы мне мало сомнения и если это - то, что Вы хотите сделать это чтения лучше в коде также.

10
ответ дан dove 26 November 2019 в 17:39
поделиться

Это имеет тот же эффект. Я лично думаю, что Session.Remove метод действительно выражает намерение программиста лучше.

Здесь некоторые ссылки на документацию относительно MSDN:

"HttpSessionState. Свойство объекта:

Тип Значения свойства: Система. Объект

значение состояния сеанса с указанным именем или нулевая ссылка (Ничто в Visual Basic), если объект не существует".

9
ответ дан splattne 26 November 2019 в 17:39
поделиться

Самое большое различие - то, как Вы читаете из сессии.

if(Session.ContainsKey["foo"]) { return Session["foo"]; }

или

if(Session["foo"] != null) { return Session["foo"]; }

, Если Вы используете первый метод, устанавливая значение в NULL, не будет работать, и необходимо использовать, удаляют.

при использовании второго метода можно установить значение в NULL.

4
ответ дан FlySwat 26 November 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: