Главная / Программирование /
Основы программирования на C# / Тест 22
Основы программирования на C# - тест 22
Упражнение 1:
Номер 1
Универсальный класс – это:
Ответ:
 (1) класс, способный решать любые задачи пользователя 
 (2) класс, методы которого могут иметь родовые параметры 
 (3) класс с родовыми параметрами 
 (4) класс, функциональные возможности которого превосходят возможности его потомков 
Номер 2
Для ограниченной универсальности справедливы следующие утверждения:
Ответ:
 (1) ограничение универсальности накладывает ограничения на все родовые параметры 
 (2) неограниченную универсальность ограничивает статический контроль типов 
 (3) введение ограничений универсальности на родовой параметр T
сужает возможности работы с объектами типа T
 
 (4) в одном предложении where можно задать ограничения на несколько родовых параметров 
Номер 3
Какие утверждения справедливы при описании взаимосвязи наследования и универсальности?
Ответ:
 (1) основным способом ограничения универсальности является ограничение наследования 
 (2) из абстрактного универсального класса нельзя создать класс, в котором конкретизированы типы, но не задана реализация методов 
 (3) из абстрактного универсального класса можно создать класс, в котором конкретизирована реализация методов, но не конкретизированы типы 
 (4) при объявлении потомка универсального класса можно задать конкретизацию типов родителя, так что потомок не будет универсальным классом 
Упражнение 2:
Номер 1
Отметьте истинные высказывания:
Ответ:
 (1) наследник универсального класса всегда универсален 
 (2) для универсального класса не может указываться атрибут сериализации 
 (3) родовые параметры универсального класса могут задаваться как на уровне класса, так и на уровне методов 
 (4) класс без родовых параметров может быть наследником универсального интерфейса 
 (5) делегаты могут иметь родовые параметры 
Номер 2
Отметьте истинные высказывания:
Ответ:
 (1) наследник универсального класса может быть универсальным классом 
 (2) структуры не могут иметь родовых параметров 
 (3) в библиотеке FCL существуют универсальные классы и универсальные интерфейсы 
 (4) универсальность реализована, начиная с версии Framework .Net 2.0 
 (5) платой за универсальность является раздувание программного кода системы 
Номер 3
Отметьте корректные высказывания
Ответ:
 (1) универсальность и наследование позволяют существенно сократить объем кода программной системы 
 (2) три типа ограничений универсальности полностью удовлетворяют всем потребностям практики 
 (3) конкретизацию типов можно выполнять в момент порождения экземпляров универсального класса 
 (4) прежде чем порождать экземпляры на основе универсального класса, необходимо предварительно создать класс, в котором все родовые параметры будут конкретизированы 
 (5) универсальный класс транслируется в параметризованный тип IL 
Упражнение 3:
Номер 1
Какие фрагменты кода корректны в предположении, что используемые родительские классы и интерфейсы определены корректно?
Ответ:
 (1) class A<B, C> { B b; C c;}
 
 (2) class A1<A1, B> { A1 a1; B b;}
 
 (3) interface IC<T> { } class A2<B> : IC<T> { }
 
 (4) class D<T1, T2>{ } class A3<B> where B : D<int, int> { }
 
Номер 2
В каких фрагментах кода возникнут ошибки (предупреждения) на этапе компиляции?
Ответ:
 (1) public class B<T> { } public class S : B<int> { }
 
 (2) public class Test1:IComparable<T> {public T x, y;}
 
 (3) public class B1<T> {public T M<T>(T x) { return x; } }
 
 (4) public class B2 <T> {public T1 M<T1>(T1 x) { return x; } }
 
Номер 3
В каких строках кода возникнут ошибки (предупреждения) на этапе трансляции?
Ответ:
 (1) abstract public class A5<T> { abstract public void M(T x); }
 
 (2) public class SA5<T> : A5<T> { public override void M(T x) { T y = x; } }
 
 (3) public class B6 { SA5<int> obj1 = new SA5<int>(); }
 
 (4) public class B7 { SA5<T> obj1 = new SA5<T>(); }
 
Упражнение 4:
Номер 1
Для ограничения универсальности
Ответ:
 (1) задаются специальные методы класса 
 (2) задаются специальные поля класса 
 (3) родовые параметры могут быть объявлены наследниками некоторого класса и или интерфейсов 
Номер 2
В C# универсальными могут быть:
Ответ:
 (1) только классы 
 (2) только классы и структуры 
 (3) классы и все их частные случаи – интерфейсы, структуры, делегаты, события 
Номер 3
На основе универсального класса можно создавать:
Ответ:
 (1) только родовые порождения экземпляров класса 
 (2) только родовые порождения конкретных классов 
 (3) как родовые порождения конкретных классов, так и экземпляров класса 
Упражнение 5:
Номер 1
Правда ли, что:
Ответ:
 (1) универсальный класс, описывающий стек, не конкретизирует тип элементов, хранимых в стеке 
 (2) при ограничении универсальности становятся недоступными операции над объектами, разрешенные универсальным классом 
 (3) вместо того, чтобы включать тип Т
в качестве родового параметра универсального класса, достаточно использовать тип object
всюду, где используется тип Т
. Эффект будет тот же 
Номер 2
Отметьте верное утверждение:
Ответ:
 (1) класс может не быть универсальным, но таковым может быть отдельный метод класса 
 (2) абстрактный класс не может быть универсальным 
 (3) ограничить универсальность можно единственным способом, используя ограничение наследования 
Номер 3
Правда ли, что:
Ответ:
 (1) класс может не быть универсальным, но таковым может быть отдельное поле класса 
 (2) делегаты не могут иметь родовых параметров 
 (3) в библиотеке FCL Visual Studio 2005 существуют универсальные интерфейсы