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

Свойства, события и Handles

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На тест отведено 55 минут; после ответа можно открыть объяснение.
Вопрос 1 из 20
Раздел «Свойства объектов»: какой разбор этого кода останется точным после переименования переменных?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Class Temperature
    Private _celsius As Decimal
    Public Property Celsius As Decimal
        Get
            Return _celsius
        End Get
        Private Set(value As Decimal)
            _celsius = value
        End Set
    End Property
End Class
Вопрос 2 из 20
Раздел «Свойства объектов»: какое ограничение нельзя убрать только потому, что обычный пример проходит?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Strict On
Namespace ReviewCase8_1
    Class Temperature
        Private _celsius As Decimal
        Public Property Celsius As Decimal
            Get
                Return _celsius
            End Get
            Private Set(value As Decimal)
                _celsius = value
            End Set
        End Property
    End Class
End Namespace
Вопрос 3 из 20
Раздел «Свойства объектов»: что именно должен локализовать полезный граничный тест для этого кода?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Explicit On
Option Infer On
Namespace BoundaryCase8_1
    Class Temperature
        Private _celsius As Decimal
        Public Property Celsius As Decimal
            Get
                Return _celsius
            End Get
            Private Set(value As Decimal)
                _celsius = value
            End Set
        End Property
    End Class
End Namespace
Вопрос 4 из 20
Раздел «Свойства объектов»: как уменьшить риск дефекта, не подменяя причину запасным значением?
Вопрос 5 из 20
Раздел «Свойства объектов»: какое правило остаётся верным для современного Visual Basic?
Вопрос 6 из 20
Посмотрите на фрагмент по теме «События с собственной реализацией». Какое объяснение точнее всего связывает код с его поведением?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Class Sensor
    Private ReadOnly handlers As New List(Of EventHandler)
    Public Custom Event Changed As EventHandler
        AddHandler(value As EventHandler)
            handlers.Add(value)
        End AddHandler
        RemoveHandler(value As EventHandler)
            handlers.Remove(value)
        End RemoveHandler
        RaiseEvent(sender As Object, e As EventArgs)
            For Each handler In handlers : handler(sender, e) : Next
        End RaiseEvent
    End Event
End Class
Вопрос 7 из 20
После рефакторинга код стал короче. Какое условие по теме «События с собственной реализацией» нельзя потерять?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Strict On
Namespace ReviewCase8_2
    Class Sensor
        Private ReadOnly handlers As New List(Of EventHandler)
        Public Custom Event Changed As EventHandler
            AddHandler(value As EventHandler)
                handlers.Add(value)
            End AddHandler
            RemoveHandler(value As EventHandler)
                handlers.Remove(value)
            End RemoveHandler
            RaiseEvent(sender As Object, e As EventArgs)
                For Each reviewHandler In handlers : reviewHandler(sender, e) : Next
            End RaiseEvent
        End Event
    End Class
End Namespace
Вопрос 8 из 20
Раздел «События с собственной реализацией»: какое утверждение поможет отличить настоящий дефект от случайности тестовых данных?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Explicit On
Option Infer On
Namespace BoundaryCase8_2
    Class Sensor
        Private ReadOnly handlers As New List(Of EventHandler)
        Public Custom Event Changed As EventHandler
            AddHandler(value As EventHandler)
                handlers.Add(value)
            End AddHandler
            RemoveHandler(value As EventHandler)
                handlers.Remove(value)
            End RemoveHandler
            RaiseEvent(sender As Object, e As EventArgs)
                For Each edgeHandler In handlers : edgeHandler(sender, e) : Next
            End RaiseEvent
        End Event
    End Class
End Namespace
Вопрос 9 из 20
Раздел «События с собственной реализацией»: как уменьшить риск дефекта, не подменяя причину запасным значением?
Вопрос 10 из 20
Какое утверждение точнее отделяет «События с собственной реализацией» от соседних механизмов?
Вопрос 11 из 20
Раздел «Декларативные обработчики Handles»: какой разбор этого кода останется точным после переименования переменных?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Class Screen
    Private WithEvents timer As Timers.Timer
    Public Sub New(value As Timers.Timer)
        timer = value
    End Sub
    Private Sub Tick(sender As Object, e As Timers.ElapsedEventArgs) Handles timer.Elapsed
        Console.WriteLine("tick")
    End Sub
End Class
Вопрос 12 из 20
Раздел «Декларативные обработчики Handles»: на ревью предлагают упростить участок с Screen. Какое замечание защищает поведение программы, а не стиль записи?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Strict On
Namespace ReviewCase8_3
    Class Screen
        Private WithEvents timer As Timers.Timer
        Public Sub New(value As Timers.Timer)
            timer = value
        End Sub
        Private Sub Tick(sender As Object, e As Timers.ElapsedEventArgs) Handles timer.Elapsed
            Console.WriteLine("tick")
        End Sub
    End Class
End Namespace
Вопрос 13 из 20
Раздел «Декларативные обработчики Handles»: какое правило нельзя считать проверенным одним обычным примером?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Explicit On
Option Infer On
Namespace BoundaryCase8_3
    Class Screen
        Private WithEvents timer As Timers.Timer
        Public Sub New(value As Timers.Timer)
            timer = value
        End Sub
        Private Sub Tick(sender As Object, e As Timers.ElapsedEventArgs) Handles timer.Elapsed
            Console.WriteLine("tick")
        End Sub
    End Class
End Namespace
Вопрос 14 из 20
Раздел «Декларативные обработчики Handles»: обычный сценарий в рабочем модуле проходит, но поведение ещё не закреплено проверкой. Какое решение не маскирует причину?
Вопрос 15 из 20
Раздел «Декларативные обработчики Handles»: какой вывод можно использовать как основание для ревью кода?
Вопрос 16 из 20
Раздел «Динамическая подписка AddHandler»: код использует Subscriber. Какой вывод останется верным при других допустимых входных данных?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Class Subscriber
    Private ReadOnly source As Timers.Timer
    Private ReadOnly handler As Timers.ElapsedEventHandler
    Public Sub New(source As Timers.Timer)
        Me.source = source
        handler = AddressOf OnElapsed
        AddHandler source.Elapsed, handler
    End Sub
    Public Sub Detach()
        RemoveHandler source.Elapsed, handler
    End Sub
    Private Sub OnElapsed(s As Object, e As Timers.ElapsedEventArgs)
    End Sub
End Class
Вопрос 17 из 20
После рефакторинга код стал короче. Какое условие по теме «Динамическая подписка AddHandler» нельзя потерять?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Strict On
Namespace ReviewCase8_4
    Class Subscriber
        Private ReadOnly reviewSource As Timers.Timer
        Private ReadOnly handler As Timers.ElapsedEventHandler
        Public Sub New(reviewSource As Timers.Timer)
            Me.reviewSource = reviewSource
            handler = AddressOf OnElapsed
            AddHandler reviewSource.Elapsed, handler
        End Sub
        Public Sub Detach()
            RemoveHandler reviewSource.Elapsed, handler
        End Sub
        Private Sub OnElapsed(s As Object, e As Timers.ElapsedEventArgs)
        End Sub
    End Class
End Namespace
Вопрос 18 из 20
Раздел «Динамическая подписка AddHandler»: какое допущение стоит нарушить отдельно, чтобы проверка действительно ловила ошибку?
Visual Basic / VB.NETVisual Basic · Свойства, события и Handles
Option Explicit On
Option Infer On
Namespace BoundaryCase8_4
    Class Subscriber
        Private ReadOnly edgeSource As Timers.Timer
        Private ReadOnly handler As Timers.ElapsedEventHandler
        Public Sub New(edgeSource As Timers.Timer)
            Me.edgeSource = edgeSource
            handler = AddressOf OnElapsed
            AddHandler edgeSource.Elapsed, handler
        End Sub
        Public Sub Detach()
            RemoveHandler edgeSource.Elapsed, handler
        End Sub
        Private Sub OnElapsed(s As Object, e As Timers.ElapsedEventArgs)
        End Sub
    End Class
End Namespace
Вопрос 19 из 20
Раздел «Динамическая подписка AddHandler»: какое решение выдержит не только демонстрационный, но и отказный сценарий?
Вопрос 20 из 20
Какое утверждение точнее отделяет «Динамическая подписка AddHandler» от соседних механизмов?

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

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

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

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