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




Главная / Программирование / Объектное программирование в классах на C# 3.0 / Тест 9