игра брюс 2048
Главная / Программирование / Основы программирования на 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 существуют универсальные интерфейсы 




Главная / Программирование / Основы программирования на C# / Тест 22