💡 Инструкция: Выберите один ответ из пяти. На тест отведено 70 минут; после ответа можно открыть объяснение.
Вопрос 11 из 25
Раздел «Условный доступ при Nothing»: что здесь является частью контракта, а не особенностью одного удачного запуска?
Visual Basic / VB.NET Visual Basic · Nullable-типы и Nothing Копировать
Class Customer
Public Property Address As Address
End Class
Class Address
Public Property City As String
End Class
Module Demo
Sub Main()
Dim customer As Customer = Nothing
Dim size As Integer? = customer?.Address?.City?.Length
Console.WriteLine(size.HasValue)
End Sub
End Module
Контракт кода: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Контракт кода: условный доступ к члену прекращает цепочку при Nothing и не возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Контракт кода: условный доступ к члену не прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Контракт кода: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Контракт кода: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но перехватывает исключения, возникшие внутри вызванного члена.
Вопрос 12 из 25
Раздел «Условный доступ при Nothing»: на ревью предлагают упростить участок с Customer. Какое замечание защищает поведение программы, а не стиль записи?
Visual Basic / VB.NET Visual Basic · Nullable-типы и Nothing Копировать
Option Strict On
Namespace ReviewCase12_3
Class Customer
Public Property Address As Address
End Class
Class Address
Public Property City As String
End Class
Module Demo
Sub Main()
Dim reviewCustomer As Customer = Nothing
Dim reviewSize As Integer? = reviewCustomer?.Address?.City?.Length
Console.WriteLine(reviewSize.HasValue)
End Sub
End Module
End Namespace
Не менять условие: условный доступ к члену прекращает цепочку при Nothing и не возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Не менять условие: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Не менять условие: условный доступ к члену не прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Не менять условие: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но перехватывает исключения, возникшие внутри вызванного члена.
Не менять условие: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Вопрос 13 из 25
Какое свойство механизма «Условный доступ при Nothing» нужно проверить на редком, но допустимом сценарии?
Visual Basic / VB.NET Visual Basic · Nullable-типы и Nothing Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase12_3
Class Customer
Public Property Address As Address
End Class
Class Address
Public Property City As String
End Class
Module Demo
Sub Main()
Dim edgeCustomer As Customer = Nothing
Dim edgeSize As Integer? = edgeCustomer?.Address?.City?.Length
Console.WriteLine(edgeSize.HasValue)
End Sub
End Module
End Namespace
Зафиксировать ожидаемое поведение: условный доступ к члену прекращает цепочку при Nothing и не возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Зафиксировать ожидаемое поведение: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но перехватывает исключения, возникшие внутри вызванного члена.
Зафиксировать ожидаемое поведение: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Зафиксировать ожидаемое поведение: условный доступ к члену не прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Зафиксировать ожидаемое поведение: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Вопрос 14 из 25
Раздел «Условный доступ при Nothing»: как уменьшить риск дефекта, не подменяя причину запасным значением?
Сделать явным правилом модуля: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но перехватывает исключения, возникшие внутри вызванного члена.
Сделать явным правилом модуля: условный доступ к члену не прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Сделать явным правилом модуля: условный доступ к члену прекращает цепочку при Nothing и не возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Сделать явным правилом модуля: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Сделать явным правилом модуля: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Вопрос 15 из 25
Какое правило по теме «Условный доступ при Nothing» можно безопасно перенести из примера в реальный проект?
Технически точный принцип: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену не прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену прекращает цепочку при Nothing и не возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Вопрос 16 из 25
Раздел «Проверка значения»: код использует count. Какой вывод останется верным при других допустимых входных данных?
Visual Basic / VB.NET Visual Basic · Nullable-типы и Nothing Копировать
Module Demo
Sub Main()
Dim count As Integer? = If(4 Mod 2 = 0, 5, CType(Nothing, Integer?))
Console.WriteLine(If(count, 0))
End Sub
End Module
Наблюдаемое поведение: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение не выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Наблюдаемое поведение: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Наблюдаемое поведение: проверка Is Nothing или HasValue должна предшествовать безопасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Наблюдаемое поведение: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Наблюдаемое поведение: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Вопрос 17 из 25
Раздел «Проверка значения»: какая претензия к возможной правке относится к поведению программы?
Visual Basic / VB.NET Visual Basic · Nullable-типы и Nothing Копировать
Option Strict On
Namespace ReviewCase12_4
Module Demo
Sub Main()
Dim reviewCount As Integer? = If(8 Mod 3 = 0, 6, CType(Nothing, Integer?))
Console.WriteLine(If(reviewCount, 0))
End Sub
End Module
End Namespace
Сохранить на ревью: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение не выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Сохранить на ревью: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Сохранить на ревью: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Сохранить на ревью: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Сохранить на ревью: проверка Is Nothing или HasValue должна предшествовать безопасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Вопрос 18 из 25
Раздел «Проверка значения»: какой результат следует зафиксировать до запуска отрицательного сценария?
Visual Basic / VB.NET Visual Basic · Nullable-типы и Nothing Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase12_4
Module Demo
Sub Main()
Dim edgeCount As Integer? = If(2 Mod 1 = 0, 4, CType(Nothing, Integer?))
Console.WriteLine(If(edgeCount, 0))
End Sub
End Module
End Namespace
Проверить на границе: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Проверить на границе: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Проверить на границе: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение не выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Проверить на границе: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Проверить на границе: проверка Is Nothing или HasValue должна предшествовать безопасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Вопрос 19 из 25
Раздел «Проверка значения»: какой подход сохраняет границу ответственности и делает отказ диагностируемым?
Оставить в коде и тестах условие: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Оставить в коде и тестах условие: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение не выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Оставить в коде и тестах условие: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Оставить в коде и тестах условие: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Оставить в коде и тестах условие: проверка Is Nothing или HasValue должна предшествовать безопасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Вопрос 20 из 25
Что точнее всего описывает механизм «Проверка значения»?
Переносимый вывод: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Переносимый вывод: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение не выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Переносимый вывод: проверка Is Nothing или HasValue должна предшествовать безопасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Переносимый вывод: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Переносимый вывод: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.