null (справочник по C#)
Ключевое слово null является литералом, представляющим пустую ссылку, которая не ссылается на объект. null является значением по умолчанию для переменных ссылочного типа. Обычные типы значений не могут иметь значение NULL, за исключением типов значений, допускающих значение NULL.
В следующем примере показано возможное поведение ключевого слова null .
class Program < class MyClass < public void MyMethod() < >> static void Main() < // Set a breakpoint here to see that mc = null. // However, the compiler considers it "unassigned." // and generates a compiler error if you try to // use the variable. MyClass mc; // Now the variable can be used, but. mc = null; // . a method call on a null object raises // a run-time NullReferenceException. // Uncomment the following line to see for yourself. // mc.MyMethod(); // Now mc has a value. mc = new MyClass(); // You can call its method. mc.MyMethod(); // Set mc to null again. The object it referenced // is no longer accessible and can now be garbage-collected. mc = null; // A null string is not the same as an empty string. string s = null; string t = String.Empty; // Logically the same as "" // Equals applied to any null object returns false. Console.WriteLine("t.Equals(s) is ", t.Equals(s)); // Equality operator also returns false when one // operand is null. Console.WriteLine("Empty string null string", s == t ? "equals": "does not equal"); // Returns true. Console.WriteLine("null == null is ", null == null); // A value type cannot be null // int i = null; // Compiler error! // Use a nullable value type instead: int? i = null; // Keep the console window open in debug mode. > >
Спецификация языка C#
Дополнительные сведения см. в спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
- справочник по C#
- Ключевые слова C#
- Значения по умолчанию типов C#
- Nothing (Visual Basic)
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
Что такое null
В SQL NULL не является значением — это состояние , указывающее, что значение элемента неизвестно или не существует. Это не ноль, не пустота, не « пустая строка », и оно не ведет себя как какое-то из этих значений. Некоторые вопросы SQL являются более запутанными, чем NULL , и его работа станет не сложна для понимания, как только вы запомните следующее простое определение: NULL — значит неизвестно .
Позвольте мне повторить, что:
NULL означает НЕИЗВЕСТНО
Держите эту строку в уме во время чтения оставшейся части статьи, и большинство, на первый взгляд, нелогичных результатов, где вы получаете NULL , на практике объяснят сами себя.
| Firebird Documentation Index → NULL в СУБД Firebird → Что такое NULL? |
Java: Значение null
Особняком в Java стоит значение null . В Java оно не является типом. Это просто конкретное значение со специальным смыслом и логикой работы. Начнем с примера:
// Определение переменной без инициализации значением // С var такое не сработает, так как невозможно вывести тип String a;
Что находится внутри переменной a ? Если мы ее распечатаем, то увидим null . Значение null используется для ссылочных типов, когда значение не определено.
Как такое возможно? Представьте, что мы хотим извлечь из базы данных пользователя, а его там нет. Что вернет нам запрос в базу? Вот именно для таких ситуаций и нужен null .
Их гораздо больше, чем может показаться на первый взгляд. Чем дальше мы будем двигаться, тем чаще он начнет встречаться:
var user = // тут делаем запрос в базу // Если данных нет, то user станет null // Запись выше равносильна var user = null;
Из вышесказанного следует важный вывод. Любой ссылочный тип данных может принимать значение null . То есть, null является значением любого ссылочного типа. А вот примитивные типы и null не совместимы. Примитивное значение всегда должно быть определено:
// Error: incompatible types: cannot be converted to int int x = null;
Задание
Определите переменную с именем greeting , но не инициализируйте ее
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
null
Значение null представляет отсутствие какого-либо объектного значения. В JavaScript, null является примитивом, и в контексте логических операций, рассматривается как ложное (falsy).
Интерактивный пример
Синтаксис
null
Описание
Значение null записывается литералом null . Оно является самостоятельным, а не свойством глобального объекта (как undefined ). В API, null часто присутствует в местах где ожидается объект, но подходящего объекта нет.
// переменная foo не существует - она не была определена и никогда не инициализировалась: > foo 'ReferenceError: foo is not defined' // переменная foo существует, но она не имеет ни типа, ни значения: > var foo = null; foo 'null'
Отличия между null и undefined
null является определённым значением отсутствия объекта, тогда как undefined обозначает неопределённость. Например:
var element; // значение переменной element до её инициализации не определённо: undefined element = document.getElementById("not-exists"); // здесь при попытке получения несуществующего элемента, метод getElementById возвращает null // переменная element теперь инициализирована значением null, её значение определено
При проверке на null или undefined , помните о различии между операторами равенства (==) и идентичности (===): с первым, выполняется преобразование типов.
typeof null; // object (не "null" из соображений обратной совместимости) typeof undefined; // undefined null === undefined; // false null == undefined; // true
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-null-value |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
