Универсальный класс - это класс:
x = y
и y = x
 
Параметры, задающие тип, может иметь:
Универсальным может быть класс, заданный с ключевым словом:
Наследование и универсальность являются двумя основными механизмами, обеспечивающими мощность объектной технологии разработки. Возможно ли объединение этих механизмов? Отметьте истинные высказывания:
Укажите высказывания истинные для параметров универсального класса:
T
заменяется фактическим типом TFact
, то там, где разрешено появляться объектам типа TFact
, разрешены и объекты, принадлежащие классам-потомкам TFact
 
T
заменяется фактическим типом TFact
, то там, где разрешено появляться объектам типа TFact
, не разрешены объекты, принадлежащие классам-потомкам TFact
 
T
, можно наложить ограничение наследования, требующее чтобы тип (класс) T
был наследником некоторого класса и/или ряда интерфейсов 
Укажите объявление класса, которое может быть синтаксически корректным в некотором контексте
Класс, являющийся наследником универсального класса с параметрами:
Какие объявления классов являются синтаксически корректными:
Класс, являющийся наследником универсального интерфейса с параметрами:
Какие высказывания являются истинными по отношению к неограниченной универсальности, когда на параметры универсального класса не накладываются никакие ограничения:
C#
 
C#
 
object
языка C#
- присваивание и сравнение на равенство и неравенство; 
Какие высказывания являются истинными по отношению к ограничению универсальности:
C#
3.0 существуют три вида ограничений, которые можно накладывать на параметры универсального класса 
Укажите, какие ограничения допустимы для параметров универсального класса:
T
указывается его родитель
T
должны быть определены операции, перечисленные в списке операций
T
должен быть задан конструктор без аргументов
T
должен относиться либо к ссылочным либо к развернутым типам
При задании ограничений на параметры универсального класса:
При задании ограничений на параметры универсального класса:
where
 
where
 
where
отделяются пробелами 
where
отделяются запятыми 
Отметьте истинные высказывания:
C#
строит код для каждого класса, получаемого заменой формальных параметров универсального класса на фактические, что приводит к дублированию программного кода; 
C#
строит параметризованный код универсального класса. При конструировании объектов конкретного типа происходит подстановка соответствующих параметров типа, так что дублирования кода не происходит 
using
позволяет задать имя для класса, представляющего родовое порождение, и это имя многократно использовать при объявлении объектов этого класса 
Программист написал фрагмент кода, при компиляции которого возникла ошибка
class A1<A1, B> { A1 a1; B b;} У программиста есть несколько версий причины возникновения ошибки. Укажите, какая из них верна:
А1
заданы два родовых параметра, а разрешается только один 
А1
заданы поля, тип которых определяется параметрами класса, что недопустимо 
А1
указан параметр, имя которого совпадает с именем класса, что недопустимо 
Программист написал фрагмент кода, при компиляции которого возникла ошибка
interface IC<C> { C Method(C arg); } class A2<B> : IC<C> { public C Method(C arg) { return arg; } } У программиста есть несколько версий причины возникновения ошибки. Укажите, какая из них верна:
А2
, являющийся наследником интерфейса, обязан включить в состав своих параметров все параметры интерфейса 
А2
, являющийся наследником интерфейса, может иметь в качестве родовых параметров только параметры интерфейса 
Укажите, в каких фрагментах кода возникнут ошибки: