VB Visual Basic  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Обобщения и ограничения типов

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

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На тест отведено 70 минут; после ответа можно открыть объяснение.
Вопрос 1 из 25
Посмотрите на фрагмент по теме «Параметры обобщённых типов». Какое объяснение точнее всего связывает код с его поведением?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Class Box(Of T)
    Public Property Value As T
    Public Sub New(value As T)
        Me.Value = value
    End Sub
End Class
Module Demo
    Sub Main()
        Dim item = New Box(Of Integer)(3)
        Console.WriteLine(item.Value + 1)
    End Sub
End Module
Вопрос 2 из 25
Раздел «Параметры обобщённых типов»: перед объединением правки нужно проверить один принцип. Какой именно?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Strict On
Namespace ReviewCase11_1
    Class Box(Of T)
        Public Property Value As T
        Public Sub New(value As T)
            Me.Value = value
        End Sub
    End Class
    Module Demo
        Sub Main()
            Dim reviewItem = New Box(Of Integer)(7)
            Console.WriteLine(reviewItem.Value + 1)
        End Sub
    End Module
End Namespace
Вопрос 3 из 25
Раздел «Параметры обобщённых типов»: какое правило нельзя считать проверенным одним обычным примером?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Explicit On
Option Infer On
Namespace BoundaryCase11_1
    Class Box(Of T)
        Public Property Value As T
        Public Sub New(value As T)
            Me.Value = value
        End Sub
    End Class
    Module Demo
        Sub Main()
            Dim edgeItem = New Box(Of Integer)(1)
            Console.WriteLine(edgeItem.Value + 1)
        End Sub
    End Module
End Namespace
Вопрос 4 из 25
Раздел «Параметры обобщённых типов»: какой вариант оставляет важное условие явным для следующего разработчика?
Вопрос 5 из 25
Какой принцип по теме «Параметры обобщённых типов» стоит закрепить в командных соглашениях?
Вопрос 6 из 25
Раздел «Ограничения обобщённых типов»: что в этом коде определяет результат, а не случайное совпадение тестовых данных?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Class Factory(Of T As {Class, New})
    Public Function Create() As T
        Return New T()
    End Function
End Class
Вопрос 7 из 25
Раздел «Ограничения обобщённых типов»: какое ограничение нельзя убрать только потому, что обычный пример проходит?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Strict On
Namespace ReviewCase11_2
    Class Factory(Of T As {Class, New})
        Public Function Create() As T
            Return New T()
        End Function
    End Class
End Namespace
Вопрос 8 из 25
Раздел «Ограничения обобщённых типов»: какой результат следует зафиксировать до запуска отрицательного сценария?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Explicit On
Option Infer On
Namespace BoundaryCase11_2
    Class Factory(Of T As {Class, New})
        Public Function Create() As T
            Return New T()
        End Function
    End Class
End Namespace
Вопрос 9 из 25
Раздел «Ограничения обобщённых типов»: что стоит закрепить в коде и тестах, а не прикрывать общим обработчиком?
Вопрос 10 из 25
Раздел «Ограничения обобщённых типов»: какое правило остаётся верным для современного Visual Basic?
Вопрос 11 из 25
Раздел «Обобщённые методы»: код использует FirstOrDefaultValue. Какой вывод останется верным при других допустимых входных данных?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Module Demo
    Function FirstOrDefaultValue(Of T)(items As IEnumerable(Of T)) As T
        For Each item In items
            Return item
        Next
        Return Nothing
    End Function

    Sub Main()
        Dim empty = Array.Empty(Of Integer)()
        Console.WriteLine(FirstOrDefaultValue(empty))
    End Sub
End Module
Вопрос 12 из 25
Раздел «Обобщённые методы»: какую договорённость важнее сохранить, чем выиграть несколько строк кода?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Strict On
Namespace ReviewCase11_3
    Module Demo
        Function FirstOrDefaultValue(Of T)(reviewItems As IEnumerable(Of T)) As T
            For Each reviewItem In reviewItems
                Return reviewItem
            Next
            Return Nothing
        End Function

        Sub Main()
            Dim reviewEmpty = Array.Empty(Of Integer)()
            Console.WriteLine(FirstOrDefaultValue(reviewEmpty))
        End Sub
    End Module
End Namespace
Вопрос 13 из 25
Раздел «Обобщённые методы»: какой результат следует зафиксировать до запуска отрицательного сценария?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Explicit On
Option Infer On
Namespace BoundaryCase11_3
    Module Demo
        Function FirstOrDefaultValue(Of T)(edgeItems As IEnumerable(Of T)) As T
            For Each edgeItem In edgeItems
                Return edgeItem
            Next
            Return Nothing
        End Function

        Sub Main()
            Dim edgeEmpty = Array.Empty(Of Integer)()
            Console.WriteLine(FirstOrDefaultValue(edgeEmpty))
        End Sub
    End Module
End Namespace
Вопрос 14 из 25
Раздел «Обобщённые методы»: как уменьшить риск дефекта, не подменяя причину запасным значением?
Вопрос 15 из 25
Какое утверждение о «Обобщённые методы» выдерживает изменение имён и входных данных?
Вопрос 16 из 25
Какой вывод о фрагменте по теме «Вариантность обобщённых интерфейсов» технически обоснован?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Interface IProducer(Of Out T)
    Function GetValue() As T
End Interface
Interface IConsumer(Of In T)
    Sub Accept(value As T)
End Interface
Вопрос 17 из 25
Раздел «Вариантность обобщённых интерфейсов»: какой вывод должен пережить рефакторинг этого фрагмента?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Strict On
Namespace ReviewCase11_4
    Interface IProducer(Of Out T)
        Function GetValue() As T
    End Interface
    Interface IConsumer(Of In T)
        Sub Accept(value As T)
    End Interface
End Namespace
Вопрос 18 из 25
Раздел «Вариантность обобщённых интерфейсов»: что именно должен локализовать полезный граничный тест для этого кода?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Explicit On
Option Infer On
Namespace BoundaryCase11_4
    Interface IProducer(Of Out T)
        Function GetValue() As T
    End Interface
    Interface IConsumer(Of In T)
        Sub Accept(value As T)
    End Interface
End Namespace
Вопрос 19 из 25
Раздел «Вариантность обобщённых интерфейсов»: что здесь важнее локального удобства: какой контракт должен быть виден в коде?
Вопрос 20 из 25
Раздел «Вариантность обобщённых интерфейсов»: какое обобщение не зависит от случайных деталей показанного примера?
Вопрос 21 из 25
Не запуская фрагмент, выберите объяснение, которое учитывает весь механизм «Пограничные случаи».
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Module Demo
    Function MaxValue(Of T As IComparable(Of T))(items As IEnumerable(Of T)) As T
        Using it = items.GetEnumerator()
            If Not it.MoveNext() Then Throw New InvalidOperationException("empty")
            Dim best = it.Current
            While it.MoveNext()
                If it.Current.CompareTo(best) > 0 Then best = it.Current
            End While
            Return best
        End Using
    End Function
End Module
Вопрос 22 из 25
Раздел «Пограничные случаи»: на ревью предлагают упростить участок с MaxValue. Какое замечание защищает поведение программы, а не стиль записи?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Strict On
Namespace ReviewCase11_5
    Module Demo
        Function MaxValue(Of T As IComparable(Of T))(reviewItems As IEnumerable(Of T)) As T
            Using it = reviewItems.GetEnumerator()
                If Not it.MoveNext() Then Throw New InvalidOperationException("empty")
                Dim reviewBest = it.Current
                While it.MoveNext()
                    If it.Current.CompareTo(reviewBest) > 0 Then reviewBest = it.Current
                End While
                Return reviewBest
            End Using
        End Function
    End Module
End Namespace
Вопрос 23 из 25
Раздел «Пограничные случаи»: обычный сценарий проходит. Что следует закрепить отдельным граничным тестом?
Visual Basic / VB.NETVisual Basic · Обобщения и ограничения типов
Option Explicit On
Option Infer On
Namespace BoundaryCase11_5
    Module Demo
        Function MaxValue(Of T As IComparable(Of T))(edgeItems As IEnumerable(Of T)) As T
            Using it = edgeItems.GetEnumerator()
                If Not it.MoveNext() Then Throw New InvalidOperationException("empty")
                Dim edgeBest = it.Current
                While it.MoveNext()
                    If it.Current.CompareTo(edgeBest) > 0 Then edgeBest = it.Current
                End While
                Return edgeBest
            End Using
        End Function
    End Module
End Namespace
Вопрос 24 из 25
Раздел «Пограничные случаи»: что стоит закрепить в коде и тестах, а не прикрывать общим обработчиком?
Вопрос 25 из 25
Раздел «Пограничные случаи»: какое правило остаётся верным для современного Visual Basic?

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

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

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

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