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