Главная / Программирование /
Объектное программирование в классах на C# 3.0 / Тест 9
Объектное программирование в классах на C# 3.0 - тест 9
Упражнение 1:
Номер 1
Укажите высказывания, истинные для атрибутов языка C#
:
Ответ:
 (1) атрибуты - необязательная часть объявления сущностей языка C#
 
 (2) для некоторых сущностей языка C#
задание атрибутов является обязательным 
 (3) задание атрибутов никак не влияет на выполнение программной системы 
 (4) разные атрибуты могут быть заданы при объявлении одной сущности 
Номер 2
Укажите высказывания, истинные для атрибутов языка C#
:
Ответ:
 (1) атрибуты играют роль комментариев, и их задание никак не влияет на выполнение программной системы 
 (2) задание атрибутов может повлиять на выполнение программной системы 
 (3) задание атрибутов может не влиять на выполнение программной системы 
Номер 3
Укажите высказывания, истинные для атрибутов языка C#
:
Ответ:
 (1) в атрибутах содержится декларативная информация, некоторое описание, сопровождающее код 
 (2) информация, заданная атрибутом, преобразуется компилятором в метаинформацию, сопровождающую сборку 
 (3) метаинформация недоступна в программе, и потому никак не может влиять на ход выполнения программы 
 (4) метаинформация доступна в программе, и потому может влиять на ход выполнения программы 
Упражнение 2:
Номер 1
Атрибуты и объекты. Какие высказывания являются истинными
Ответ:
 (1) атрибуты не являются объектами языка C#
 
 (2) атрибуты являются объектами единственного атрибутного класса Attribute
 
 (3) существует множество атрибутных классов, и каждый атрибут является объектом одного из этих классов 
Номер 2
Атрибуты и объекты. Какие высказывания являются истинными:
Ответ:
 (1) в библиотеке FCL
есть множество атрибутных классов, все они являются потомками класса Attribute, определяющего общие свойства и поведение объектов, называемых атрибутами 
 (2) все атрибуты, появляющиеся в программах на языке C#
, принадлежат встроенным атрибутным классам из библиотеки FCL
 
 (3) имена атрибутных классов должны заканчиваться суффиксом Attribute
 
 (4) программист может определять собственные атрибутные классы, но этот класс должен быть потомком класса Attribute
и его имя должно заканчиваться суффиксом Attribute
. 
Номер 3
Укажите, для каких сущностей и элементов программы могут быть заданы атрибуты:
Ответ:
 (1) для классов и всех его частных случаев 
 (2) для методов класса 
 (3) для программных блоков 
 (4) для полей класса 
Упражнение 3:
Номер 1
Укажите, для каких сущностей и элементов программы могут быть заданы атрибуты:
Ответ:
 (1) для аргументов метода 
 (2) для значения, возвращаемого методом класса 
 (3) для программных блоков, заключенных в фигурные скобки 
 (4) для условий в операторе if
 
Номер 2
Укажите, для каких сущностей и элементов программы могут быть заданы атрибуты:
Ответ:
 (1) для событий 
 (2) для модуля 
 (3) для сборки 
 (4) для документируемых комментариев 
Номер 3
Рассмотрим атрибут, принадлежащий встроенному классу FlagsAttribute
. Укажите, какие утверждения справедливы по отношению к этому атрибуту:
Ответ:
 (1) атрибут может быть задан для любой сущности языка C#
- класса, метода, поля 
 (2) атрибут может быть задан при объявлении всех частных случаев класса 
 (3) атрибут может быть задан только при объявлении классов C#
задающих перечисление, то есть только для enum
классов 
 (4) задание атрибута Flags
для перечисления влияет на то, как будет выполняться метод ToString
для объектов перечисления 
Упражнение 4:
Номер 1
Укажите высказывания, истинные для класса Attribute
:
Ответ:
 (1) является абстрактным классом 
 (2) является потомком интерфейса _ Attribute
и следовательно наследует его методы 
 (3) для каждой сущности языка C#
автоматически создается объект класса Attribute
, описывающий свойства сущности 
 (4) объявление класса Attribute
содержит атрибуты. 
Номер 2
Поля атрибутного класса имеют специфику, отличную от обычной семантики полей класса. Укажите, какие высказывания справедливы для полей атрибутного класса:
Ответ:
 (1) у атрибутного класса могут быть поля класса, значения которых должны быть заданы в конструкторе класса в обязательном порядке. Такие поля называются позиционными 
 (2) у атрибутного класса могут быть открытые поля класса, значения которых могут быть заданы или не заданы при вызове конструкторе класса. Такие поля называются именованными 
 (3) у каждого атрибутного класса есть позиционные поля 
 (4) у каждого атрибутного класса есть именованные поля 
Номер 3
Задание атрибута можно рассматривать как вызов конструктора атрибутного класса и создание соответствующего объекта, связанного с сущностью, для которой атрибут задается. Укажите, какие синтаксические формы допустимы для задания атрибута, в атрибутном классе которого нет позиционных полей:
Ответ:
 (1) достаточно указать краткое имя класса, опустив суффикс Attribute
(например [Flags]
) 
 (2) достаточно указать полное имя класса (например [FlagsAttribute]
) 
 (3) можно указать полное имя класса, дополнив его скобками, как это делается при вызове конструктора (например [FlagsAttribute()]
) 
 (4) допустима только полная форма вызова конструктора (new [FlagsAttribute()]
) 
Упражнение 5:
Номер 1
Укажите истинные высказывания:
Ответ:
 (1) в момент объявления сущности можно задать атрибут, связав тем самым сущность с атрибутом 
 (2) любой атрибут может быть связан с любой сущностью 
 (3) атрибут может быть связан с сущностью, если только сущность соответствует цели атрибута, устанавливаемой параметром ValidOn
, возможные значения которого задаются перечислением AttributeTargets
. 
Номер 2
Объявление сущностей в языке C#
начинается с возможного задания атрибутов сущности. Укажите, какие высказывания справедливы для задания атрибутов:
Ответ:
 (1) атрибуты сущности задаются в одной или нескольких атрибутных секциях 
 (2) атрибутная секция может содержать список объявлений атрибутов, заключенный в квадратные скобки 
 (3) допустимо задание только одной атрибутной секции 
 (4) порядок задания атрибутных секций играет важную роль 
Номер 3
Какие из встроенных атрибутов могут быть заданы для методов класса:
Ответ:
 (1) Flags
 
 (2) Serializable
 
 (3) Conditonal
 
 (4) Description
 
Упражнение 6:
Номер 1
Пусть M
это метод класса. Укажите утверждения, истинные для метода M
:
Ответ:
 (1) метод называется условно компилируемым, если для метода M
задан атрибут условной компиляции Conditional
; 
 (2) если для метода M
задан атрибут условной компиляции Conditional
, то метод не будет компилироваться; 
 (3) если для метода M
задан атрибут условной компиляции Conditional
, то метод будет компилироваться, когда выполняется условие компиляции - совпадение параметра атрибута Conditional
и константы компиляции, заданной в параметрах проекта; 
Номер 2
Пусть M
это условно компилируемый метод класса. Укажите утверждения, истинные для метода M
:
Ответ:
 (1) при вызове метода M
он выполняться не будет 
 (2) при вызове метода M
он будет выполняться, если истинно условие компиляции 
 (3) если условие компиляции не выполняется, то при вызове метода M
возникнет ошибка периода выполнения 
 (4) если условие компиляции не выполняется, то вызов метода M
будет проигнорирован, не приводя к ошибкам 
Номер 3
Пусть программистом создан собственный атрибутный класс MyAt
. Укажите истинные высказывания:
Ответ:
 (1) при объявлении класса MyAt
можно указать те целевые сущности, для которых возможно задание атрибутов этого класса 
 (2) задание для сущности атрибута класса MyAt
приведет к тому, что информация, заданная атрибутом станет частью метаинформации, сопровождающей проект 
 (3) информация, заданная атрибутом класса MyAt
, может повлиять на выполнение проекта 
 (4) информация, заданная атрибутом класса MyAt
, никак не может повлиять на выполнение проекта 
Упражнение 7:
Номер 1
Комментарии языка C#
могут быть:
Ответ:
 (1) обычными строчными 
 (2) документируемыми строчными 
 (3) обычными блочными (многострочными) 
 (4) документируемыми блочными 
 (5) документируемый блочный комментарий может появляться в любом месте программы 
Номер 2
Хороший стиль разработки проектов предполагает, что документирование проекта сопровождает процесс разработки. Укажите, какие высказывания верны для процесса документирования в языке C#
:
Ответ:
 (1) генератор документации является частью компилятора C#
 
 (2) для того чтобы генератор документации построил отчет, необходимо включить соответствующий флажок в параметрах проекта 
 (3) документируемые комментарии являются частью отчета 
 (4) профессиональный программист не документирует программный текст, полагая, что его текст не нуждается в комментариях 
Номер 3
Документируемые комментарии в программах на C#
могут включать текст в формате XML
, содержащий элементы, называемые тегами. Укажите высказывания, истинные для тегов:
Ответ:
 (1) допускаются только предопределенные в языке C#
теги 
 (2) информация, заданная предопределенными тегами summary, param, returns
и другими, используется при построении XML
отчета при документировании проекта 
 (3) информация, заданная предопределенными тегами summary, param, returns
и другими, используется в интеллектуальной подсказке при работе с объектами 
 (4) информация, заданная предопределенными тегами summary, param, returns
и другими, используется при работе браузера объектов 
 (5) информация, заданная предопределенными тегами summary, param, returns
и другими, является комментарием, поясняющим программный код