VB Visual Basic  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Классы и структуры

Тест по теме «Классы и структуры» состоит из 20 вопросов: нужно читать код, сравнивать близкие решения, находить границы применимости правил и разбирать последствия ошибок. Заданий с кодом — 12; после каждого ответа открывается объяснение.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На тест отведено 55 минут; после ответа можно открыть объяснение.
Вопрос 1 из 20
Раздел «Классы»: что в этом коде определяет результат, а не случайное совпадение тестовых данных?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Class Counter
    Public Value As Integer
End Class
Module Demo
    Sub Main()
        Dim first = New Counter With {.Value = 1}
        Dim second = first
        second.Value += 3
        Console.WriteLine(first.Value)
    End Sub
End Module
Вопрос 2 из 20
Раздел «Классы»: какой вывод должен пережить рефакторинг этого фрагмента?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Option Strict On
Namespace ReviewCase6_1
    Class Counter
        Public Value As Integer
    End Class
    Module Demo
        Sub Main()
            Dim reviewFirst = New Counter With {.Value = 1}
            Dim reviewSecond = reviewFirst
            reviewSecond.Value += 7
            Console.WriteLine(reviewFirst.Value)
        End Sub
    End Module
End Namespace
Вопрос 3 из 20
Раздел «Классы»: обычный сценарий проходит. Что следует закрепить отдельным граничным тестом?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Option Explicit On
Option Infer On
Namespace BoundaryCase6_1
    Class Counter
        Public Value As Integer
    End Class
    Module Demo
        Sub Main()
            Dim edgeFirst = New Counter With {.Value = 1}
            Dim edgeSecond = edgeFirst
            edgeSecond.Value += 1
            Console.WriteLine(edgeFirst.Value)
        End Sub
    End Module
End Namespace
Вопрос 4 из 20
Раздел «Классы»: какой вариант оставляет важное условие явным для следующего разработчика?
Вопрос 5 из 20
Какое утверждение о «Классы» выдерживает изменение имён и входных данных?
Вопрос 6 из 20
Раздел «Структуры-значения»: какое утверждение позволяет предсказать поведение фрагмента по правилам Visual Basic и .NET?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Structure Point
    Public X As Integer
End Structure
Module Demo
    Sub Main()
        Dim a = New Point With {.X = 1}
        Dim b = a
        b.X += 8
        Console.WriteLine($"{a.X}:{b.X}")
    End Sub
End Module
Вопрос 7 из 20
Раздел «Структуры-значения»: какая претензия к возможной правке относится к поведению программы?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Option Strict On
Namespace ReviewCase6_2
    Structure Point
        Public X As Integer
    End Structure
    Module Demo
        Sub Main()
            Dim a = New Point With {.X = 1}
            Dim b = a
            b.X += 5
            Console.WriteLine($"{a.X}:{b.X}")
        End Sub
    End Module
End Namespace
Вопрос 8 из 20
Раздел «Структуры-значения»: что именно должен локализовать полезный граничный тест для этого кода?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Option Explicit On
Option Infer On
Namespace BoundaryCase6_2
    Structure Point
        Public X As Integer
    End Structure
    Module Demo
        Sub Main()
            Dim a = New Point With {.X = 1}
            Dim b = a
            b.X += 6
            Console.WriteLine($"{a.X}:{b.X}")
        End Sub
    End Module
End Namespace
Вопрос 9 из 20
Раздел «Структуры-значения»: что нужно сделать частью контракта рабочего модуля?
Вопрос 10 из 20
Раздел «Структуры-значения»: какое обобщение не зависит от случайных деталей показанного примера?
Вопрос 11 из 20
Какой контракт действительно соблюдает показанный фрагмент из раздела «Конструкторы»?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Class Order
    Public ReadOnly Property Id As Integer
    Public Sub New(id As Integer)
        If id <= 0 Then Throw New ArgumentOutOfRangeException(NameOf(id))
        Me.Id = id
    End Sub
End Class
Вопрос 12 из 20
Раздел «Конструкторы»: какой комментарий к изменению будет технически обоснован?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Option Strict On
Namespace ReviewCase6_3
    Class Order
        Public ReadOnly Property Id As Integer
        Public Sub New(reviewId As Integer)
            If reviewId <= 0 Then Throw New ArgumentOutOfRangeException(NameOf(reviewId))
            Me.Id = reviewId
        End Sub
    End Class
End Namespace
Вопрос 13 из 20
Раздел «Конструкторы»: для фрагмента с Order добавляют регрессионный тест. Какой контракт он должен защищать?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Option Explicit On
Option Infer On
Namespace BoundaryCase6_3
    Class Order
        Public ReadOnly Property Id As Integer
        Public Sub New(edgeId As Integer)
            If edgeId <= 0 Then Throw New ArgumentOutOfRangeException(NameOf(edgeId))
            Me.Id = edgeId
        End Sub
    End Class
End Namespace
Вопрос 14 из 20
Раздел «Конструкторы»: какой выбор не превращает скрытую ошибку в тихое продолжение работы?
Вопрос 15 из 20
Что можно считать надёжным рабочим правилом для раздела «Конструкторы»?
Вопрос 16 из 20
Раздел «Область видимости»: что здесь является частью контракта, а не особенностью одного удачного запуска?
Visual Basic / VB.NETVisual 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
Вопрос 17 из 20
Раздел «Область видимости»: какая претензия к возможной правке относится к поведению программы?
Visual Basic / VB.NETVisual Basic · Классы и структуры
Option Strict On
Namespace ReviewCase6_4
    Class Account
        Private _balance As Decimal
        Public Sub Deposit(reviewAmount As Decimal)
            If reviewAmount <= 0 Then Throw New ArgumentOutOfRangeException(NameOf(reviewAmount))
            _balance += reviewAmount
        End Sub
    End Class
End Namespace
Вопрос 18 из 20
Раздел «Область видимости»: какое допущение стоит нарушить отдельно, чтобы проверка действительно ловила ошибку?
Visual Basic / VB.NETVisual 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
Вопрос 19 из 20
Раздел «Область видимости»: какой выбор не превращает скрытую ошибку в тихое продолжение работы?
Вопрос 20 из 20
Какое утверждение о «Область видимости» выдерживает изменение имён и входных данных?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу