Типы ссылок по умолчанию равны null, чтобы указать, что они не ссылаются на какой-либо объект. Следовательно, если вы попытаетесь получить доступ к объекту, на который ссылаетесь, а его нет, вы получите исключение NullReferenceException.
Для Ex:
SqlConnection connection = null;
connection.Open();
Когда вы запускаете это кода, вы получите:
System.NullReferenceException: Object reference not set to an instance of an object.
Вы можете избежать этой ошибки, например, следующим образом:
if (connection != null){
connection.Open();
}
Примечание. Чтобы избежать этой ошибки, вы всегда должны инициализировать свои объекты прежде чем пытаться что-либо сделать с ними.
Transparent
создаст кисть, которая инициализируется прозрачным цветом, null установит свойство равным null, это означает, что свойство назначения не имеет прикрепленной кисти. В WPF часто важно установить кисть элемента. Если вы, например, хотите отслеживать мышиные элементы в элементе, вы должны установить фон. Если вы не хотите устанавливать сплошной цвет (сделать его непрозрачным), вы можете использовать прозрачную кисть. Это можно сделать со строковым значением «Прозрачный». Разница заключается в том, как будет устанавливаться свойство. Если вы присвоите null для свойства brush, свойство будет действительно равно null. Если вы установите строку «Transparent», значение значение-конвертер , преобразующее строку в кисти, преобразует ее в кисть Brushes.Transparent
.
Короткая версия: {x:Null}
устанавливает свойство назначения - null. «Прозрачный» задает свойство назначения прозрачной кисти.
Оба устанавливают локальное значение свойства Background
. Первый устанавливает его на null
, а второй устанавливает его на Brushes.Transparent
.
Есть несколько важных моментов, которые необходимо знать:
null
- not - то же самое, что и не устанавливать его вообще. Поскольку свойства зависимостей получают свое эффективное значение из нескольких источников , установка локального значения (даже если оно null
) может иметь приоритет над значениями, потенциально полученными из других источников, такими как стиль или анимация. IsHitTestVisible
. Это свойство позволяет контролировать видимость тестового теста независимо от кисти, с которой рендерит UIElement
. {x:Null}
не будет нажата, Transparent
будет.
Элементы с фоном Transparent
получают события щелчка мыши при нажатии на фон, элементы с Null
этого не делают.