💡 Инструкция: Выберите один ответ из пяти. На тест отведено 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 и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Не менять условие: условный доступ к члену прекращает цепочку при Nothing и не возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Не менять условие: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Не менять условие: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Вопрос 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 и не возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Сделать явным правилом модуля: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Вопрос 15 из 25
Какое правило по теме «Условный доступ при Nothing» можно безопасно перенести из примера в реальный проект?
Технически точный принцип: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену прекращает цепочку при Nothing и возвращает nullable-результат, но перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену не прекращает цепочку при Nothing и возвращает nullable-результат, но не перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену прекращает цепочку при Nothing и всегда возвращает обычный тип значения, но не перехватывает исключения, возникшие внутри вызванного члена.
Технически точный принцип: условный доступ к члену прекращает цепочку при 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
Наблюдаемое поведение: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Наблюдаемое поведение: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Наблюдаемое поведение: проверка 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 осознанно.
Сохранить на ревью: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Сохранить на ревью: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Сохранить на ревью: проверка 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 осознанно.
Проверить на границе: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Проверить на границе: проверка Is Nothing или HasValue должна предшествовать безопасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Проверить на границе: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение не выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Проверить на границе: проверка 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 осознанно.
Оставить в коде и тестах условие: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Оставить в коде и тестах условие: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.
Вопрос 20 из 25
Что точнее всего описывает механизм «Проверка значения»?
Переносимый вывод: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Переносимый вывод: проверка Is Nothing или HasValue не должна предшествовать опасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Переносимый вывод: проверка Is Nothing или HasValue должна предшествовать безопасному чтению, а запасное значение выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Переносимый вывод: проверка Is Nothing или HasValue должна предшествовать опасному чтению, а запасное значение не выбирается через If(nullable, fallback) или GetValueOrDefault осознанно.
Переносимый вывод: запасная ветвь в If(nullable, fallback) вычисляется всегда, поэтому эта форма не отличается от обычного вызова функции с двумя аргументами.