![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование допускающих значение NULL типовСодержание книги
Поиск на нашем сайте
Допускающие значение NULL типы могут представлять все значения лежащего в их основе типа, а также значение NULL. Допускающие значение NULL типы объявляются одним из следующих способов: System.Nullable<T> variable –либо– T? variable T — это тип, лежащий в основе допускающего значение NULL типа. Типом T может быть любой тип значения, включая struct, но не может быть ссылочный тип. Примером случая, когда может использоваться допускающий значение NULL тип, может служить обычная переменная логического типа, которая может иметь два значения: true и false. Обозначающего "не определено" значения не существует. Во многих программных приложениях, в первую очередь в операциях с базами данных, переменные могут иметь неопределенное состояние. Например, поле базы данных может содержать значение true или false, но мажет также вообще не содержать какого-либо значения. Аналогично, ссылочные типы могут иметь значение null, обозначающее, что они не инициализированы. Это несоответствие может создавать дополнительную работу по программированию, приводить к использованию дополнительных переменных для хранения информации о состоянии, применению специальных значений и т.д. Модификатор типа, преобразующий тип в допускающий значения NULL, позволяет языку C# создавать переменные типа значения, обозначающие неопределенное значение. Примеры допускающих значение NULL типов Любой тип значения может использоваться в качестве основы допускающего значение NULL типа. Например:
The Members of Nullable Types Each instance of a nullable type has two public read-only properties: · HasValue HasValue is of type bool. It is set to true when the variable contains a non-null value. · Value Value is of the same type as the underlying type. If HasValue is true, Value contains a meaningful value. If HasValue is false, accessing Value will throw a InvalidOperationException. In this example, the HasValue member is used to test whether the variable contains a value before it tries to display it.
Testing for a value can also be done as in the following example:
Члены допускающих значение NULL типов Каждый экземпляр допускающего значение NULL типа имеет два общих предназначенных только для чтения свойства: · HasValue Свойство HasValue имеет тип bool. Это свойство имеет значение true, если переменная содержит определенное значение.
· Value Свойство Value имеет тот же тип, что и лежащий в основе тип. Если свойство HasValue имеет значение true, то свойство Value содержит имеющее смысл значение. Если свойство HasValue имеет значение false, то доступ к свойству Value будет приводить к формированию ошибки InvalidOperationException. В этом примере член HasValue используется для выполнения проверки, содержит ли переменная какое-либо значение, прежде чем пытаться его показать. ß----
Проверка переменной может быть также выполнена способом, показанным в следующем примере:
Explicit Conversions A nullable type can be cast to a regular type, either explicitly with a cast, or by using the Value property. For example:
If a user-defined conversion is defined between two data types, the same conversion can also be used with the nullable versions of these data types. Implicit Conversions A variable of nullable type can be set to null with the null keyword, as shown in the following example:
The conversion from an ordinary type to a nullable type, is implicit.
Явные преобразования Допускающий значение NULL тип может быть приведен к обычному типу либо явным образом с помощью приведения, либо с помощью свойства Value. Например:
Если определенное пользователем преобразование определено между двумя типами данных, то это же преобразование может быть также использовано с допускающими значение NULL версиями этих типов данных. Неявные преобразования Переменной допускающего значение NULL типа может быть присвоено значение NULL с помощью ключевого слова null, как показано в следующем примере:
Преобразование из обычного типа в допускающий значение NULL тип является неявным.
Operators The predefined unary and binary operators and any user-defined operators that exist for value types may also be used by nullable types. These operators produce a null value if the operands are null; otherwise, the operator uses the contained value to calculate the result. For example:
When performing comparisons with nullable types, if one of the nullable types is null, the comparison is always evaluated to be false. It is therefore important not to assume that because a comparison is false, the opposite case is true. For example:
The conclusion in the else statement is not valid because num2 is null and therefore does not contain a value. A comparison of two nullable types which are both null will be evaluated to true.
Операторы Существующие для типов значений предварительно определенные унарные и бинарные операторы, а также определенные пользователем операторы могут также использоваться допускающими значение NULL типами. Эти операторы создают значение NULL, если операнды имеют значение NULL; иначе оператор использует для вычисления результата содержащееся значение. Например: ß--- Если при выполнении сравнения с допускающими значение NULL типами один из допускающих значение NULL типов содержит null, то результатом сравнения всегда является false. Следовательно, важно не считать, что если результатом сравнения является false, то противоположным случаем является true. Например:
Заключение в инструкции else является недопустимым, потому что num2 содержит null и, следовательно, не содержит какого-либо значения. Сравнение двух допускающих значение NULL типов, оба из которых содержат null, будет давать результат true.
The?? Operator The?? operator defines a default value that is returned when a nullable type is assigned to a non-nullable type.
This operator can also be used with multiple nullable types. For example:
The bool? type The bool? nullable type can contain three different values: true, false and null. Nullable Booleans are like the Boolean variable type that is used in SQL. To ensure that the results produced by the & and | operators are consistent with the three-valued Boolean type in SQL, the following predefined operators are provided: bool? operator &(bool? x, bool? y) bool? operator |(bool? x, bool? y) The results of these operators are listed in the following table:
Оператор?? Оператор?? определяет значение по умолчанию, возвращаемое при присвоении допускающего значение NULL типа не допускающему значение NULL типу.
Этот оператор может также использоваться с несколькими допускающими значение NULL типами. Например:
Тип bool? Допускающий значение NULL тип bool? может содержать три значения: true, false и null. Допускающие значение NULL логические типы аналогичны логическим типам переменных, используемым в языке SQL. Для обеспечения согласованности результатов выполнения операторов & и | с имеющим три значения логическим типом языка SQL предусмотрены следующие предварительно определенные операторы: bool? operator &(bool? x, bool? y) bool? operator |(bool? x, bool? y) Результаты выполнения этих операторов приведены в следующей таблице:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-19; просмотров: 159; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.20.232.154 (0.008 с.) |