💡 Инструкция: Выберите один ответ из пяти. На тест отведено 55 минут; после ответа можно открыть объяснение.
Вопрос 16 из 20
Раздел «Область видимости»: что здесь является частью контракта, а не особенностью одного удачного запуска?
Visual Basic / VB.NET Visual Basic · Классы и структуры Копировать
Class Account
Private _balance As Decimal
Public Sub Deposit(amount As Decimal)
If amount <= 0 Then Throw New ArgumentOutOfRangeException(NameOf(amount))
_balance += amount
End Sub
End Class
Разбор фрагмента: контракт Область видимости можно сократить до «Модификаторы Public, Friend, Protected и Private задают настоящую границу API»; часть «открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами» остаётся лишь рекомендацией.
Разбор фрагмента: модификаторы Public, Friend, Protected и Private не задают настоящую границу API; открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами.
Разбор фрагмента: достаточно выполнить одно из двух условий: «Модификаторы Public, Friend, Protected и Private задают настоящую границу API» или «открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами».
Разбор фрагмента: public, Friend и Private в основном управляют подсказками редактора; открытое поле не расширяет фактический контракт объекта.
Разбор фрагмента: модификаторы Public, Friend, Protected и Private задают настоящую границу API; открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами.
Вопрос 18 из 20
Раздел «Область видимости»: какое допущение стоит нарушить отдельно, чтобы проверка действительно ловила ошибку?
Visual Basic / VB.NET Visual Basic · Классы и структуры Копировать
Option Explicit On
Option Infer On
Namespace BoundaryCase6_4
Class Account
Private _balance As Decimal
Public Sub Deposit(edgeAmount As Decimal)
If edgeAmount <= 0 Then Throw New ArgumentOutOfRangeException(NameOf(edgeAmount))
_balance += edgeAmount
End Sub
End Class
End Namespace
Зафиксировать ожидаемое поведение: контракт Область видимости можно сократить до «Модификаторы Public, Friend, Protected и Private задают настоящую границу API»; часть «открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами» остаётся лишь рекомендацией.
Зафиксировать ожидаемое поведение: модификаторы Public, Friend, Protected и Private не задают настоящую границу API; открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами.
Зафиксировать ожидаемое поведение: достаточно выполнить одно из двух условий: «Модификаторы Public, Friend, Protected и Private задают настоящую границу API» или «открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами».
Зафиксировать ожидаемое поведение: public, Friend и Private в основном управляют подсказками редактора; открытое поле не расширяет фактический контракт объекта.
Зафиксировать ожидаемое поведение: модификаторы Public, Friend, Protected и Private задают настоящую границу API; открывать поля ради удобства значит отдавать вызывающему коду контроль над инвариантами.