Сертификат "Программирование на C# 4.0" 2021
  • Сертификат "Программирование на C# 4.0" 2021
Сертификат "Программирование на C# 4.0" 2021
  • Сертификат "Программирование на C# 4.0" 2021

Программирование на C 4.0

850,00 руб.
В течение часа!
Экзамен Программирование на C# 4.0 для программистов и системных администраторов.
 
Сертифицированные специалисты RetraTech по программе «Программирование на C# 4.0» обладают отличными навыками программирования на языке С#, который стал одним из стандартов среди разработчиков прикладного и системного программного обеспечения. Программист, прошедший данную сертификацию, владеет различными приёмами написания и отладки программ с использованием мощного объектно-ориентированного языка высокого уровня С# и хорошими навыками конфигурирования платформы .NET
Количество
Есть в наличии!

Вопросы: экзамен состоит из 40 вопросов.
Время: на его прохождение отводится 100 минут.
Проходной балл: 70% и выше.

Бумажная версия сданного сертификата заказывается на сайте RetraTech.
10000 шт.
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Сколько поколений имеет сборщик мусора в CLR?

2

4

3

1

 


Наследником какого класса должен являться объект любого CLS-совместивого исключения?

System.Error

System.Object

System.ExceptionObject

System.RuntimeError

System.Exception


 

Какая из перечисленных операций linq НЕ следит за уникальностью элементов результирующей последовательности?

Distinct()

Where()

Union()

Intersect()

Except()

 


К чему приводит использование конструкции using в следующем участке кода?

Ключевое слово using в данном случае позволяет конструктору BinaryWriter использовать небезопасный код.
Жизненный цикл этого объекта особо контроллируется.

При выходе за пределы блока using будет гарантированно вызван метод Dispose() переменной writer.

Ключевое слово using не используется в таком контексте. Данный код не скомпилируется.

Использование using блокирует одновременный доступ к объекту writer из разных потоков, а также к используемым другим объектам, таким как stream.

Использование using гарантирует при выходе за пределы данного блока кода немедленный вызов деструктора и удаление объекта writer из памяти.

 

 

Что можно проверить оператором is?

Реализован ли у объекта определенный интерфейс.

Является ли класс объекта потомком определенного класса.

Наличие определенного флага в перечислимом типе.

Равен ли объект null.

Является ли тип объекта значимым или ссылочным.

 


Что под собой подразумевает "сборка со строгим именем"?

Имя сборки имеет формат пространства имен, типы в котором она реализует. Как, например,
System.Windows.Forms.dll реализует типы пространства имен System.Windows.Forms.

Либо внутри кода сборки определен атрибут сборки StrongNameAttribute, либо во время компиляции сборки был указан параметр /strongname.

Все буквы в имени сборки находятся в нижнем регистре.

Имя файла сборки не менялось вручную после её компиляции.

Сборка подписана закрытым криптографическим ключем, хранящимся у её издателя.



Используя какое пространство имен, можно обратиться к любым, даже закрытым, членам управляемых объектов?

System.Runtime.CompilerServices

System.Diagnostics

System.Resources

System.Reflection

System.Security


Каково назначение ключевых слов unchecked и checked?

Код в блоке unchecked выполняется только в конфигурации Debug, а если внутри него есть блок checked, то он будет выполнен и в конфигурации Release.

Эквивалентны false и true.

Это пассивные вспомогательные ключевые слова, призванные помочь программисту в пометке его блоков кода как уже проверенного и отлаженного, и наоборот.

Используются для явного указания, какой тип арифметических операций должен быть выполнен над примитивными типами: с проверкой на переполнение или нет.

Используются для явного указания надежного или ненадежного кода.
Ненадежный код выполняется дольше вследствие дополнительных проверок.


Возможно ли из тела лямбда-выражения обращаться к переменным (локальным, полям, свойствам и т.п.), определенным за пределами выражения?

Только через аргументы, переданные в лямбда-выражения.

Можно обратиться как к локальным переменным и аргументам метода, в котором определено выражение, так и к полям и свойствам класса, в котором оно находится.

Только к переменным значимого типа.

Только к полям и свойствам класса, в котором определено лямбда-выражение.

Только к локальным переменным и аргументам метода, в котором определено выражение.

 

В программу были загружены дополнительные сборки, реализующие некоторые дополнительные функциональные возможности.

По соглашению, принятому между программистами, любой класс, определенный внутри дополнительной сборки, может иметь (а может и нет) статический закрытый метод Init с одним аргументом типа InitInfo, который должен быть автоматически вызван при загрузке сборки.

Какой из следующих фрагментов кода правильно реализует вызов данного метода в типах, определенных в загруженной сборке

 

 

Какой уровень доступа имеют поля класса, если модификатор доступа не указан?

internal

public

protected internal

protected

private


 

Корректен ли следующий код? Если нет, то в чем ошибка?

в качестве ограничения для параметров типа нельзя использовать интерфейсы.

код абсолютно корректен.

необходимо также указать ограничение для параметра типа T4 в методе класса Derived.

недопустимо в унаследованных методах переименовывать параметры типа.

недопустимо в унаследованных методах явно указывать ограничения на параметры типа.

 

 

В чем различие операций linq Cast<T> и OfType<T>?

Cast можно использовать только для ссылочных типов, а OfType - для значимых.

Операция Cast генерирует исключение, если не может выполнить приведение типов, а OfType пропускает данный элемент последовательности.

Абсолютно никаких.

Cast<T> выполняет приведение, если элемент последовательности является наследником от T, а OfType<T>
выполняет приведение только если тип элемента строго равен T.

Операция Cast генерирует исключение, если не может выполнить приведение типов, а OfType в этом случае возвращает null.


 

Определено два массива:

Какая из команд вернет последовательность чисел (без повторений), которые одновременно есть и в одном, и в другом массиве?


 

Какое имя типа выведет следующий код?

System.Variant

ни одно из перечисленных

System.Dynamic

System.Object

System.Int32


 

Каков результат выполнения следующего кода?

Четкий порядок вывода не определен.

thread

message 1

message 2

 

message 1

message 2

thread

 

message1

message2

 

message 1

thread

message 2


Какая из следующих конфигураций позволяет загрузить зависимую сборку SuperService.dll версии 2.0.0.0 по адресу http://host.ru/SuperService.dll?

 

Массив байтов textData содержит текстовые данные в кодировке windows-1251.

Каким образом можно его преобразовать в корректную строку для дальнейшего использования?


 

Какой тип является базовым для всех значимых типов?

System.Struct

System.Runtime.ValueBase

System.Enum

System.Runtime.Unboxed

System.ValueType

 

 

Корректен ли следующий фрагмент кода? Если нет, то что в нем нужно исправить?

Код абсолютно корректен.

Необходимо поменять внешние блоки catch и finally местами.

Необходимо указать тип исключений для блоков catch.

Внутри блока catch нельзя снова использовать конструкцию try/catch.

Нельзя одновременно использовать блоки catch и finally для одного блока try. Необходимо использовать вложенные блоки try/catch и try/finally.


 

В целях отладки вы решили написать метод для вывода всех экземплярных полей объекта, включая закрытые поля. Какой из перечисленных методов для этого подходит?


 

Каким образом создается анонимный тип?




От какого типа должны наследоваться пользовательские классы настраиваемых атрибутов?

System.Attribute

System.Reflection.CustomAttribute

System.Reflection.MemberInfo

System.Object

System.ValueType

 

 

В чем ошибка следующего метода?

Необходимо убрать скобки вокруг str.

Код абсолютно корректен.

Перед обязательно должно быть ключевое слово .

Тело лямбда-выражения обязательно брать в фигурные скобки.

Если список переменных лябмда-выражения помещается в скобки, то требуется указывать тип переменной. В данном случае должно быть так: .

 

Какие сборки могут быть помещены в глобальный кэш сборок (GAC)?

Любая сборка.

Только сборки без строгого имени.

Только сборки со строгим именем или с отложенным подписыванием.

Только сборки с отложенным подписыванием.

Любая сборка, но только по одной версии на каждое имя сборки.


 

В какой момент вызывается финализатор объекта?

При аварийном завершении приложения.

При вызове метода Dispose() объекта.

При возникновении исключения в конструкторе объекта.

При очередной сборке мусора, при условии, что данный объект больше не нужен программе.

При уничтожении объекта оператором delete.

 

 

Каков результат выполнения следующего кода?

Код не скомпилируется.

IBase
IBase

DerivedClass
IBase

BaseClass
IBase

BaseClass
BaseClass


 

Массив stock представляет собой список товаров на складе. Массив order - это список заказанных товаров.

Необходимо выбрать список имеющихся позиций товаров, количество которых не превышает количество в заказе. Какой из следующих запросов это осуществит?

 


Корректен ли данный фрагмент кода? Если нет, то в чем ошибка?

Нельзя одновременно в массив помещать строки и null.

Цикл foreach не допустим для массивов, в которых есть значения null.

Строчка str = "" не допустима.

Не указан тип элементов массива.

Код абсолютно корректен.

 

 

Корректен ли данный фрагмент кода? Если нет, то в чем ошибка?

Нельзя одновременно в массив помещать строки и null.

Код абсолютно корректен.

Строчка data[i] = "" недопустима.

Индексация массива начинается с 1, а не с 0.

Не указан тип элементов массива.



Сколько обработчиков могут подписаться на событие?

Настраивается для конкретного класса с помощью атрибута EventParamsAttribute.

До 255.

Настраивается для конкретного события с помощью атрибута HandlersAttribute.

Любое количество


 

Какая команда устанавливает сборку в глобальный кэш сборок?

gacutil /i AssemblyName.dll

cl /i AssemblyName.dll

gac /u AssemblyName.dll

al /i AssemblyName.dll

wsdl /u AssemblyName.dll

 

 

С помошью какого события можно узнать о генерации исключения ещё до начала поиска средой выполнения блоков catch для его обработки?

Exception.Throw

AppDomain.CurrentDomain.UnhandledException

Application.ThreadException

Application.Error

AppDomain.CurrentDomain.FirstChanceException

 

Что следует сделать, чтобы следующий код компилировался?

Убрать ключевое слово abstract у класса BaseClass.

Заменить handlers(this, e) на handlers.Invoke(this, e).

Переписать код так, чтобы событие и инициирующий его код находился в одном классе.

Добавить ключевое слово new к методу OnSomeEvent в классе DerivedClass.

В классе BaseClass методу OnSomeEvent добавить ключевое слово virtual.


 

В чем заключается различие основного (или активного) и фонового потоков?

Основной поток - поток, обрабатывающий сообщения Windows. Остальные - фоновые.

Основной поток напрямую обращается к API Windows, а фоновые - только через основной.

Основной поток - это тот, который выполняется в данный момент времени, остальные - фоновые.

При завершении последнего основного потока приложение завершится, не смотря на все фоновые потоки.

Фоновый поток, в отличие от основного, имеет минимальный приоритет.


 

Переменная TotalConnections содержит количество подключений, а константа MaxConnections указывает максимальное количество подключений.

Какой из следующих фрагментов кода правильно генерирует исключение при достижении максимального количества подключений?

 

Для чего НЕ может использоваться метод SetElementValue объекта типа XElement?

Для изменения поддерева дочернего элемента.

Для изменения свойства Value текущего элемента.

Для удаления дочернего элемента.

Для изменения свойства Value дочернего элемента.

Для добавления дочернего элемента.


 

Какая из следующих строчек правильно описывает переопределение оператора явного приведения из типа Money в тип float?


 

Корректен ли следующий код? Если нет, то в чем ошибка?

вместо SomeClass необходимо написать SomeClass<T>.

в конструкторе обязательно нужно инициализировать поле m_value.

код абслютно корректен.

свойство не может иметь параметры типа.

в аксессоре set свойства TypedValue необходимо использовать явное приведение типов.

 


Что из перечисленного может иметь интерфейс?

События

Свойства

Методы

Поля

Константы


 

Какой из приведенных участков кода правильно реализует логику определения и вызова события в классе Example?


 

Каков вывод следующего фрагмента кода?

False

True

False

True

True

False

 

 

True

True

True

True

False

False



True

True

False

True

False

True

 

 

True

False

False

False

True

False

 

 

False

True

True

False

False

True

 

 

В чем отличие типов XElement и XStreamingElement?

типу XStreamingElement при создании можно передать массив дочерних элементов, а типу XElement - нет.

типа XStreamingElement не существует в стандартной библиотеке .NET Framework 4.

XStreamingElement сразу записывает новые элементы в выходной поток Stream, а у метода XElement нет такой функциональности.

XStreamingElement выполняет отложенное конструирование XML, XElement - мгновенное.

XStreamingElement читает данные для создания элементов из потока Stream, а XElement - нет.

 

 

В каких местах среда CLR производит поиск зависимых сборок? Выберите 3 варианта ответа.

В подпапке assemblies.

В подпапке с именем сборки.

В подпапке bin.

В папке приложения.

 

 

Какие циклы бывают в C#?


 

Какое ключевое слово следует использовать при определении метода в не абстрактном, не изолированном классе, чтобы данный метод можно было переопределить в унаследованных классах?

protected

virtual

override

sealed

new


 

Наследуются ли атрибуты унаследованными классами?

Поведение задается на этапе проектирования класса атрибута.

Поведение задается на этапе применения атрибута к какому-либо классу.

Поведение задается в глобальных опциях приложения.

Всегда наследуются.

Никогда не наследуются.

 

 

Какой из приведенных участков кода выведет в консоль все пользовательские настройки конфигурационного файла в секции appSettings?


 

Статический класс Utils имеет метод для вычисления MD5-хеша произвольной строки:

Вследствие частого использования было бы удобно вызывать данный метод как экземплярный для класса String следующим образом:

Однако добавить метод в класс String нельзя. Как добиться желаемого синтаксиса вызова?

С помощью отражения при запуске программы добавить реализацию недостающего метода классу String.
А чтобы код компилировался, вместо string везде использовать ключевое тип dynamic.

Никак нельзя. Придется вызывать данный метод через класс Utils.

Добавить ключевое слово this перед первым аргументов метода ComputeMD5Hash.

Изменить определение метода следующим образом: .

Добавить перед определением метода ключевое слово partial.

 

 

Какой из следующих методов отфильтрует массив типов, оставив в результате только типы, реализующие интерфейс IAutorun?

 

Определен следующий участок кода:

При его выполнении происходит ошибка приведения типов. Что нужно изменить, чтобы фрагмент работал гладко?

Поменять операцию Where() на следующую:

Изменить тип в определении первого столбца на

Убрать операцию AsEnumerable()

Поменять оперецию Where() на следующую:

Поменять оперецию Where() на следующую:


 

Необходимо сделать, чтобы зависимые сборки приложения загружались из папки dlls и папки bin.

Какое содержимое должен иметь конфигурационный файл приложения?


 

Сколько по умолчанию выводится десятичных знаков при вызове метода ToString() переменной типа System.Money?

Ни одного.

Два знака, остальные просто отбрасываются.

Всегда идет округдение до двух десятичных знаков.

Зависит от текущих региональных настроек приложения.

В библиотеке классов .NET Framework нет такого типа.



Какой интерфейс должен реализовывать класс, чтобы к переменным данного типа был применим оператор foreach?

IIterator

IEnumerable

IForEach

IArray

IReader

 


Какие операции linq призваны для пропуска определенного количества элементов последовательности и ограничения возвращаемого количества элементов?

Skip и Limit

Offset и Limit

Offset и Count

Offset и Take

Skip и Take

 


С помощью какого атрибута помечаются поля типа, не подлежащие сериализации?

SkipFieldAttribute

SupressSerializingAttribute

OnSerializingAttribute

NonSerializedAttribute

OptionalFieldAttribute


 

Каков результат выполнения следующего кода?

Base
Derived

Base

Программа содержит ошибку и не скомпилируется.

Derived
Base

Derived

 


Имеется массив, содержащий различные элементы управления. Было необходимо получить массив текстовых полей только элементов типа Label, для чего был составлен запрос через методы расширения linq.

На практике оказалось, что данный код приводит к исключению InvalidCastException. Как его изменить, чтобы он выполнял свою функцию без ошибок?

заменить ToArray() на ToArray()

убрать ToArray()

заменить Cast на SafeCast

заменить Cast на OfType

убрать Cast()


Какого свойства нет у объекта типа XElement?

NextNode

Parent

Document

Declaration

Value


 

Некоторые компоненты могут генерировать не CLS-совместимые исключения, которые не являются наследниками класса System.Exception.

Каким образом осуществляется перехват таких исключений в C# 4 по умолчанию (без использования атрибута сборки RuntimeCompatiblity для установки старого поведения)?

Необходимо использовать следующий код: catch (object) { ... }

Все не CLS-совместимые исключения оборачиваются в тип RuntimeWrapperException, который является наследником System.Exception, поэтому их можно поймать обычным способом.

CLS-совместимые исключения перехватываются в блоке catch (Exception) { ... }, а не CLS-совместимые - в блоке catch { ... }.

По умолчанию такие исключения нельзя поймать - они всегда приводят к аварийному завершению программы.

По умолчанию такие исключения игнорируются, и выполнение программы продолжается.

 

 

При осуществлении запроса к веб-сервису ему передается имя открытого метода, который необходимо вызвать, и его аргументы. Все методы находятся в статическом классе ServiceImpl.

Какой из вариантов кода правильно реализует вызов запрошенного метода, допуская что список аргументов не участвует в поиске метода?


 

Метод LoadFileIfExists должен открыть файл, если он существует, и вернуть его, иначе метод должен вернуть null.

Какой из следующих фрагментов кода реализует поставленную задачу?



Какой из приведенных фрагментов кода корректно изменяет количество элементов массива?

 

В каком месте в программе может быть определен делегат (тип)?

в любом месте, где может быть определен класс.

только как член интерфейса.

только как член класса или структуры.

только внутри абстрактного класса.

внутри методов и аксессоров.



С помощью какого класса осуществляется инициализация объекта для отмены долгой асинхронной операции?

System.Threading.Thread

System.Threading.Tasks.Task

System.Threading.CancelationRequest

System.Threading.ThreadAbort

System.Threading.CancelationTokenSource

 

 

У вас имеется сборка Lib.dll и конфигурационный файл для нее Lib.dll.config. Ключ для подписи сборки хранится в файла keys.snk.

Какой командой необходимо воспользоваться, чтобы создать корректную сборку политики издателя?

al /link:Lib.dll.config /out:policy.1.0.Lib.dll /key:keys.snk

al /link:Lib.dll.config,Lib.dll /out:policy.Lib.dll /key:keys.snk

sn /key:keys.snk /cfg:Lib.dll.config /link:Lib.dll /out:policy.1.0.Lib.dll

gacutil /i Lib.dll /link:Lib.dll.config /key:keys.snk

cl /link:Lib.dll.config /out:policy.Lib.dll /key:keys.snk


 

Могут ли несколько методов класса или интерфейса иметь одинаковые имена?

Да, если они имеют разные модификаторы доступа.

Да, если все они имеют разные типы/количество аргументов либо разные типы возвращаемых значений.

Нет.

Да, только если они являются виртуальными.

Да, если только все они имеют разные типы/количество аргументов.


 

Какие утверждения верны для отражения в стандартной сборке С#?

Отражение позволяет получить доступ к закрытым членам классов.

Обращение через отражение позволяет повысить производительность приложения в ущерб читабельности кода.

Отражение позволяет получить доступ к статическим полям классов.

Отражение позволяет вызвать только методы без аргументов.

Отражение позволяет добавлять произвольные члены в существующие типы.

 

К каким сущностям можно применять настраиваемые атрибуты?

К локальным переменным.

К аксессорам.

К возвращаемому значению метода.

К сборке.

К файлу исходного кода.

 


Что дает применение атрибута StructLayoutAttribute?

Позволяет указать, в какую сборку требуется скомпилировать структуру.

Позволяет указать класс из другой сборки, членом которого будет являться данный класс или структура.

Позволяет контроллировать, как поля структуры или класса будут расположены при экспорте в неуправляемую память.

Позволяет контроллировать, в какой области памяти будет размещаться экземпляр структуры: в стеке или куче.

Позволяет назначить классу поведение, подобное структуре.


 

Можно ли унаследоваться от класса, у которого нет конструктора без параметров? Если да, то как в этом случае определять конструкторы в порожденном классе?

Можно. В теле конструктора в нужном месте вставляется вызов любого конструктора базового класса, используя ключевое слово base.

Нельзя. Необходимо, чтобы базовый класс имел конструктор без параметров.

Можно. При определеннии конструктора, используя ключевое слово base, указываются аргументы для вызова конструктора базового класса.

В порожденном классе можно определить только конструктор с такими же параметрами, как и в базовом классе.
Соответствующий конструктор базового класса будет вызываться автоматически.

Можно. Конструкторы в порожденном классе определяются как обычно, а при создании экземпляра конструктор базового класса в таком случае не вызывается.

 


Есть ли в данном коде ошибка? Если да, то какая?

В классе Node необходимо определить дополнительные методы GetEnumerator().

Свойство Childs класса Node должно иметь аксессор set, иначе через него нельзя добавлять элементы в список.

Для класса Node вместо IEnumerable<ChildNode> необходимо наследоваться от интерфейса IEnumerable<Node>.

Из класса ChildNode нельзя добавить элементы в список через свойство Childs, т.к. сам список имеет модификатор private.

Данный код абсолютно корректен.


 

Укажите верные определения массивов:


 

Какой класс является базовым для конструкций синхронизации потоков режима ядра?

System.Threading.SpinLock

System.Threading.WaitHandle

System.Threading.Interlocked

System.Threading.Thread

System.Threading.SynchronizationContext


 

Что означает ключевое слово protected перед членом класса?

Ключевое слово protected может ставиться только перед классом.

Данный член класса будет доступен наследуемым классам.

Защищает память используемую членом класса от сборки мусора.

Данный член класса защищен от перезаписи.

Данное ключевое слово гарантирует, что даже при генерации исключения во время использования данного члена программа не будет аварийно завершена.


 

Необходимо подписаться на событие выгрузки домена приложения. Какой фрагмент кода это делает правильно?



 

Вам необходимо импортировать список товаров из файла формата csv, для чего был написан следующий код:

Однако в дальнейшем csv-парсер выдал ошибку. В режиме отладки вы увидели, что в переменной csv много некорректных символов, хотя в экселе и блокноте тот же файл открывается нормально. В чем проблема и как ее можно исправить?

Данный метод работает не всегда корректно, но сохранен для совместимости со старыми приложениями. Необходимо воспользоваться классом FileStream или другим стабильным классом.

Проблема в неверной кодировке. Классы из пространства имен System.IO всегда работают с файлами в формате UTF-8. Необходимо использовать стороннюю библиотеку.

Проблема в неверной кодировке. Необходимо вторым параметром указать верную кодировку файла.

Это следствие ошибок на диске. Необходимо выполнить проверку дисков.

Проблема в неверной кодировке. Строки в C# всегда хранятся в кодировке Unicode. Необходимо другими средствами привести файл к такой же кодировке.

 

 

В чем ошибка следующего фрагмента кода (методы SomeAction(FileStream) и Log(string) существуют и корректны)?

Переменную file необходимо объявлять внутри блока try.

Блок finally нельзя использовать, если есть блоки catch.

Нельзя указывать два блока catch.

Строчку throw необходимо заменить на throw e.

Блоки catch необходимо поменять местами.


 

Класс Example имеет открытое экземплярное событие SomeEvent. Из каких методов дозволено инициировать событие вызовом его метода Invoke?

Только из экземплярных методов класса Example.

Из методов любого класса.

Только из экземплярных методов класса Example и унаследованных от него.

Только из экземплярных методов класса Example и методов классов, определенных внутри класса Example.

Только из метода OnSomeEvent класса Example.


 

Метод Ancestors объекта типа XElement возвращает:

последовательность узлов-соседей, находящихся на одном уровне с данным элементом и расположенных перед ним.

последовательность всех родительских узлов.

последовательность всех родительских элементов и верхний объект типа XDocument.

последовательность всех родительских элементов.

последовательность элементов-соседей, находящихся на одном уровне с данным элементом и расположенных перед ним.



В какой момент вызывается статический конструктор и инициализируются статические поля классов?

При каждом обращении к любому статическому члену.

При запуске программы.

Перед первым обращением к статическим членам или перед первым создании экземпляра класса.

Статические поля инициализируются при старте программы, а статических конструкторов в C# не бывает.

Каждое статическое поле инициализируется непосредственно перед первым обращением к нему,
а статический конструктор вызывается перед первым обращением к любому члену класса.


 

Переменная xbooks хранит XML-дерево книг с их названиями и авторами, а также XML-комментариями, кем-то добавленными:

Какая строчка кода позволит разом удалить все XML-комментарии?

 


Почему следующий код может некорректно работать?

Класс SomeEventArgs должен быть определен как член класса Example.

Потому что открытый член события должен обращаться к другому, внутреннему члену события через аксессоры. Необходимо добавить закрытое событие в класс.

Если на событие не подписывался ни один обработчик, то переменная handlers будет равна null. Необходимо проверять её на null перед инициацией события.

Класс EventArgs имеет абстрактные поля и методы, которые необходимо реализовать в унаследованном классе для корректной работы.

Потому что он синтаксически неверен. Инициацию события необходимо делать так: handlers.Invoke(this, e);

 

 

Какие из следующих строчек асинхронно запускают задачу вывода в консоль, используя при этом пул потоков?



В следующем массиве хранятся некоторые типы. Флаг refType указывает, является ли данный тип ссылочным или значимым.

Какие из следующих запросов позволяют выбрать имена только ссылочных типов?


 

Какое имя должен иметь файл конфигурации, чтобы он автоматически загружался во время запуска программы?

config.xml

app.config

Для загрузки конфигурационного файла необходимо в программе писать соотвествующий код, поэтому имя не важно.

Такое же, как и исполняемый файл, и плюс ".config".

Любое, но его надо указать в исходном коде с помощью атрибута сборки AssemblyConfigurationAttribute.


 

В приложение динамически загружена сборка:

Какая из следующих строчек позволяет получить все (и только) публичные типы, определенные в сборке?


 

При каскадной генерации исключений, каким образом можно получить объект самого первого исключения, которое породило остальные?

Вызовом метода System.Diagnostics.Process.GetLastError().

Вызовом метода GetLastError() объекта типа Exception.

Вызовом метода GetBaseException() объекта типа Exception.

Чтением свойства System.Diagnostics.Process.BaseException.

Чтением свойства InnerException объекта типа Exception.

 

 

Каков результат выполнения следующего кода?

3, 1, 1, 1

3, 0, 1, 2

Во время выполнения программы будет сгенерировано исключение.

3, 1, 1, 2

0, 0, 1, 2


 

Необходимо, чтобы параметр типа T класса Activator<T> мог принимать только типы, реализующие интерфейс IWorkItem и имеющие открытый конструктор без параметров.

Какой фрагмент кода это реализует?


 

В программе определен следующий фрагмент кода:

Сейчас при возникновении исключения в методе SomeAction файл остается открытым. Как следует изменить код, чтобы файл гарантированно закрывался?






Метод PercentsToAbsoluteValue первым аргументом имеет целое число, которое должно быть от 0 до 100 включительно.

Необходимо, чтобы при передаче методу аргумента, выходящего за допустимые пределы, генерировалось исключение ArgumentOutOfRangeException.

Какой фрагмент кода реализует поставленную задачу верно?

 

В массиве weather хранится статистическая информация о температуре в разных городах на каждый день:

Какой запрос позволит получить информацию о минимальной, средней и максимальной температуре по каждому городу?





В классе определено событие SomeEvent:

Какая из следующих реализаций метода OnSomeEvent гарантированно вызовет все подписавшиеся обработчики события, даже если в каком-то из них произойдет исключение?

 


В программе определен следующий участок кода:

Предполагалось что в результирующей выборке окажутся только уникальные строки, однако фильтрации не произошло. Что нужно изменить в коде, чтобы он работал корректно?

Добавить в конец запроса операцию Single()

Убрать строчку AsEnumerable()

Использовать вместо Distinct() операцию Where()

Использовать вместо Dintinct() операцию RowDistinct()

Передать методу Distinct() первым аргументом объект DataRowComparer.Default

 

 

Что произойдет, если исключение будет сгенерировано во время выполнения блока catch или finally?

Происходит обработка как в случае, если бы данное исключение возникло после соответствующего блока try/catch/finally.

Происходит автоматичекое аварийное завершение приложения без выполенния других блоков try/catch/finally.

Внутри данных блоков исключения игнорируются.

Если исключение возникло в блоке catch, и вместе с ним используется блок finally, то выполняется его содержимое. Исключения в блоке finally игнорируются.

Происходит обработка возникнувшего исключения через те же блоки catch/finally, которые к нему привели.


 

Каково предназначение класса System.Threading.Interlocked?

Он позволяет осуществлять параллельное выполнение нескольких операций.

Он позволяет блокировать определенные потоки.

Он предоставляет доступ к пулу потоков.

Он позволяет выводить потоки из мертвой блокировки (deadlock).

Он позволяет осуществлять некоторые простые операции как атомарные.

 


Вам потребовалось, чтобы программа со всеми ресурсами локализации для разных языков хранились в единственной сборке. Удалось выяснить, что экземпляры класса ResourceManager имеют закрытое поле UseSatelliteAssem типа bool, позволяющее реализовать требуемое поведение. Это поле по умолчанию всегда равно true. Какой метод позволит изменить значение этого поля на false?


Каких классов нет в пространстве имен System.Reflection?

PropertyInfo

EventInfo

AppDomainInfo

NamespaceInfo

MemberInfo

 


Какие из следующих лямбда-выражений являются корректными?


 

Какие из следующих операций linq являются отложенными (НЕ осуществляют мгновенной выборки данных в момент вызова)?

First

OrderBy

ToArray

Take

Select


 

Каков результат выполнения следующей программы?

ICustomInterface2

ICustomInterface1
ICustomInterface2

IBaseInterface
ICustomInterface1
ICustomInterface2

Не будет выведен ни один интерфейс.

Программа содержит ошибку и не скомпилируется.



Что означает ключевое слово internal рядом с членом класса?

Данный член класса будет доступен только внутри класса, в котором он определен.

Данный член класса будет доступен только внутри файла с исходным кодом, в котором он определен.

Данный член класса будет доступен только внутри пространства имен, в котором он определен.

Данный член класса будет доступен только внутри сборки, в которой он определен.

К данному члену класса можно обратиться только посредством отражения.


 

Корректен ли следующий код? Если нет, то в чем ошибка?

нельзя, чтобы несколько методов с одинаковыми именами в одном классе различались по списку аргументов.

необходимо убрать ключевое слово sealed.

необходимо, чтобы модификаторы доступа у переопределяемого метода в базовом и наследуемом классах совпадали.

код абсолютно корректен.

нельзя в одном классе иметь несколько методов с одинаковыми именами.



Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Наследником какого класса должен являться объект любого CLS-совместивого исключения?

System.Error

System.Object

System.ExceptionObject

System.RuntimeError

System.Exception

 

 

Какая из перечисленных операций linq НЕ следит за уникальностью элементов результирующей последовательности?

Distinct()

Where()

Union()

Intersect()

Except()


 

К чему приводит использование конструкции using в следующем участке кода?

Ключевое слово using в данном случае позволяет конструктору BinaryWriter использовать небезопасный код.
Жизненный цикл этого объекта особо контроллируется.

При выходе за пределы блока using будет гарантированно вызван метод Dispose() переменной writer.

Ключевое слово using не используется в таком контексте. Данный код не скомпилируется.

Использование using блокирует одновременный доступ к объекту writer из разных потоков, а также к используемым другим объектам, таким как stream.

Использование using гарантирует при выходе за пределы данного блока кода немедленный вызов деструктора и удаление объекта writer из памяти.

 

 

Что можно проверить оператором is?

Реализован ли у объекта определенный интерфейс.

Является ли класс объекта потомком определенного класса.

Наличие определенного флага в перечислимом типе.

Равен ли объект null.

Является ли тип объекта значимым или ссылочным.



Что под собой подразумевает "сборка со строгим именем"?

Имя сборки имеет формат пространства имен, типы в котором она реализует. Как, например,
System.Windows.Forms.dll реализует типы пространства имен System.Windows.Forms.

Либо внутри кода сборки определен атрибут сборки StrongNameAttribute, либо во время компиляции сборки был указан параметр /strongname.

Все буквы в имени сборки находятся в нижнем регистре.

Имя файла сборки не менялось вручную после её компиляции.

Сборка подписана закрытым криптографическим ключем, хранящимся у её издателя.


 

Используя какое пространство имен, можно обратиться к любым, даже закрытым, членам управляемых объектов?

System.Runtime.CompilerServices

System.Diagnostics

System.Resources

System.Reflection

System.Security

 


Каково назначение ключевых слов unchecked и checked?

Код в блоке unchecked выполняется только в конфигурации Debug, а если внутри него есть блок checked, то он будет выполнен и в конфигурации Release.

Эквивалентны false и true.

Это пассивные вспомогательные ключевые слова, призванные помочь программисту в пометке его блоков кода как уже проверенного и отлаженного, и наоборот.

Используются для явного указания, какой тип арифметических операций должен быть выполнен над примитивными типами: с проверкой на переполнение или нет.

Используются для явного указания надежного или ненадежного кода.
Ненадежный код выполняется дольше вследствие дополнительных проверок.

 


Возможно ли из тела лямбда-выражения обращаться к переменным (локальным, полям, свойствам и т.п.), определенным за пределами выражения?

Только через аргументы, переданные в лямбда-выражения.

Можно обратиться как к локальным переменным и аргументам метода, в котором определено выражение, так и к полям и свойствам класса, в котором оно находится.

Только к переменным значимого типа.

Только к полям и свойствам класса, в котором определено лямбда-выражение.

Только к локальным переменным и аргументам метода, в котором определено выражение.

 

 

В программу были загружены дополнительные сборки, реализующие некоторые дополнительные функциональные возможности.

По соглашению, принятому между программистами, любой класс, определенный внутри дополнительной сборки, может иметь (а может и нет) статический закрытый метод Init с одним аргументом типа InitInfo, который должен быть автоматически вызван при загрузке сборки.

Какой из следующих фрагментов кода правильно реализует вызов данного метода в типах, определенных в загруженной сборке?



Какой уровень доступа имеют поля класса, если модификатор доступа не указан?

internal

public

protected internal

protected

private


 

Корректен ли следующий код? Если нет, то в чем ошибка?

в качестве ограничения для параметров типа нельзя использовать интерфейсы.

код абсолютно корректен.

необходимо также указать ограничение для параметра типа T4 в методе класса Derived.

недопустимо в унаследованных методах переименовывать параметры типа.

недопустимо в унаследованных методах явно указывать ограничения на параметры типа.

 


В чем различие операций linq Cast<T> и OfType<T>?

Cast можно использовать только для ссылочных типов, а OfType - для значимых.

Операция Cast генерирует исключение, если не может выполнить приведение типов, а OfType пропускает данный элемент последовательности.

Абсолютно никаких.

Cast<T> выполняет приведение, если элемент последовательности является наследником от T, а OfType<T>
выполняет приведение только если тип элемента строго равен T.

Операция Cast генерирует исключение, если не может выполнить приведение типов, а OfType в этом случае возвращает null.


 

Определено два массива:

Какая из команд вернет последовательность чисел (без повторений), которые одновременно есть и в одном, и в другом массиве?


Какое имя типа выведет следующий код?

System.Variant

ни одно из перечисленных

System.Dynamic

System.Object

System.Int32


 

Каков результат выполнения следующей программы?

Каков результат выполнения следующего кода?

Четкий порядок вывода не определен.

thread

message 1

message 2

 

message 1

message 2

thread

 

message1

message2

 

message 1

thread

message 2




Какая из следующих конфигураций позволяет загрузить зависимую сборку SuperService.dll версии 2.0.0.0 по адресу http://host.ru/SuperService.dll?



Массив байтов textData содержит текстовые данные в кодировке windows-1251.

Каким образом можно его преобразовать в корректную строку для дальнейшего использования?


 

Какой тип является базовым для всех значимых типов?

System.Struct

System.Runtime.ValueBase

System.Enum

System.Runtime.Unboxed

System.ValueType

 

 

Корректен ли следующий фрагмент кода? Если нет, то что в нем нужно исправить?

Код абсолютно корректен.

Необходимо поменять внешние блоки catch и finally местами.

Необходимо указать тип исключений для блоков catch.

Внутри блока catch нельзя снова использовать конструкцию try/catch.

Нельзя одновременно использовать блоки catch и finally для одного блока try. Необходимо использовать вложенные блоки try/catch и try/finally.


 

В целях отладки вы решили написать метод для вывода всех экземплярных полей объекта, включая закрытые поля. Какой из перечисленных методов для этого подходит?


Каким образом создается анонимный тип?


 

От какого типа должны наследоваться пользовательские классы настраиваемых атрибутов?

System.Attribute

System.Reflection.CustomAttribute

System.Reflection.MemberInfo

System.Object

System.ValueType

 

 

В чем ошибка следующего метода?

Необходимо убрать скобки вокруг str.

Код абсолютно корректен.

Перед обязательно должно быть ключевое слово .

Тело лямбда-выражения обязательно брать в фигурные скобки.

Если список переменных лябмда-выражения помещается в скобки, то требуется указывать тип переменной. В данном случае должно быть так: .

 

 

Какие сборки могут быть помещены в глобальный кэш сборок (GAC)?

Любая сборка.

Только сборки без строгого имени.

Только сборки со строгим именем или с отложенным подписыванием.

Только сборки с отложенным подписыванием.

Любая сборка, но только по одной версии на каждое имя сборки.


 

В какой момент вызывается финализатор объекта?

При аварийном завершении приложения.

При вызове метода Dispose() объекта.

При возникновении исключения в конструкторе объекта.

При очередной сборке мусора, при условии, что данный объект больше не нужен программе.

При уничтожении объекта оператором delete.

 

 

Каков результат выполнения следующего кода?

Код не скомпилируется.

IBase
IBase

DerivedClass
IBase

BaseClass
IBase

BaseClass
BaseClass


 

Массив stock представляет собой список товаров на складе. Массив order - это список заказанных товаров.

Необходимо выбрать список имеющихся позиций товаров, количество которых не превышает количество в заказе. Какой из следующих запросов это осуществит?


 

Корректен ли данный фрагмент кода? Если нет, то в чем ошибка?

Нельзя одновременно в массив помещать строки и null.

Цикл foreach не допустим для массивов, в которых есть значения null.

Строчка str = "" не допустима.

Не указан тип элементов массива.

Код абсолютно корректен.

 


Корректен ли данный фрагмент кода? Если нет, то в чем ошибка?

Нельзя одновременно в массив помещать строки и null.

Код абсолютно корректен.

Строчка data[i] = "" недопустима.

Индексация массива начинается с 1, а не с 0.

Не указан тип элементов массива.

 


Сколько обработчиков могут подписаться на событие?

Настраивается для конкретного класса с помощью атрибута EventParamsAttribute.

До 255.

Настраивается для конкретного события с помощью атрибута HandlersAttribute.

Любое количество.

1.

 


Какая команда устанавливает сборку в глобальный кэш сборок?

gacutil /i AssemblyName.dll

cl /i AssemblyName.dll

gac /u AssemblyName.dll

al /i AssemblyName.dll

wsdl /u AssemblyName.dll


С помошью какого события можно узнать о генерации исключения ещё до начала поиска средой выполнения блоков catch для его обработки?

Exception.Throw

AppDomain.CurrentDomain.UnhandledException

Application.ThreadException

Application.Error

AppDomain.CurrentDomain.FirstChanceException

 


Что следует сделать, чтобы следующий код компилировался?

Убрать ключевое слово abstract у класса BaseClass.

Заменить handlers(this, e) на handlers.Invoke(this, e).

Переписать код так, чтобы событие и инициирующий его код находился в одном классе.

Добавить ключевое слово new к методу OnSomeEvent в классе DerivedClass.

В классе BaseClass методу OnSomeEvent добавить ключевое слово virtual.

 

 

В чем заключается различие основного (или активного) и фонового потоков?

Основной поток - поток, обрабатывающий сообщения Windows. Остальные - фоновые.

Основной поток напрямую обращается к API Windows, а фоновые - только через основной.

Основной поток - это тот, который выполняется в данный момент времени, остальные - фоновые.

При завершении последнего основного потока приложение завершится, не смотря на все фоновые потоки.

Фоновый поток, в отличие от основного, имеет минимальный приоритет.


 

Переменная TotalConnections содержит количество подключений, а константа MaxConnections указывает максимальное количество подключений.

Какой из следующих фрагментов кода правильно генерирует исключение при достижении максимального количества подключений?



Для чего НЕ может использоваться метод SetElementValue объекта типа XElement?

Для изменения поддерева дочернего элемента.

Для изменения свойства Value текущего элемента.

Для удаления дочернего элемента.

Для изменения свойства Value дочернего элемента.

Для добавления дочернего элемента.


 

Какая из следующих строчек правильно описывает переопределение оператора явного приведения из типа Money в тип float?


 

Корректен ли следующий код? Если нет, то в чем ошибка?

вместо SomeClass необходимо написать SomeClass<T>.

в конструкторе обязательно нужно инициализировать поле m_value.

код абслютно корректен.

свойство не может иметь параметры типа.

в аксессоре set свойства TypedValue необходимо использовать явное приведение типов.



Что из перечисленного может иметь интерфейс?

События

Свойства

Методы

Поля

Константы


 

Какой из приведенных участков кода правильно реализует логику определения и вызова события в классе Example?



Каков вывод следующего фрагмента кода?

False

True

False

True

True

False

 

 

True

True

True

True

False

False


 

True

True

False

True

False

True

 

 

 

True

False

False

False

True

False

 

 

 

False

True

True

False

False

True

 


В чем отличие типов XElement и XStreamingElement?

типу XStreamingElement при создании можно передать массив дочерних элементов, а типу XElement - нет.

типа XStreamingElement не существует в стандартной библиотеке .NET Framework 4.

XStreamingElement сразу записывает новые элементы в выходной поток Stream, а у метода XElement нет такой функциональности.

XStreamingElement выполняет отложенное конструирование XML, XElement - мгновенное.

XStreamingElement читает данные для создания элементов из потока Stream, а XElement - нет.

 

 

В каких местах среда CLR производит поиск зависимых сборок? Выберите 3 варианта ответа.

В подпапке assemblies.

GAC.

В подпапке с именем сборки.

В подпапке bin.

В папке приложения.


 

Какие циклы бывают в C#?


 

Какое ключевое слово следует использовать при определении метода в не абстрактном, не изолированном классе, чтобы данный метод можно было переопределить в унаследованных классах?

protected

virtual

override

sealed

new


 

Наследуются ли атрибуты унаследованными классами?

Поведение задается на этапе проектирования класса атрибута.

Поведение задается на этапе применения атрибута к какому-либо классу.

Поведение задается в глобальных опциях приложения.

Всегда наследуются.

Никогда не наследуются.


Какой из приведенных участков кода выведет в консоль все пользовательские настройки конфигурационного файла в секции appSettings?



Статический класс Utils имеет метод для вычисления MD5-хеша произвольной строки:

Вследствие частого использования было бы удобно вызывать данный метод как экземплярный для класса String следующим образом:

Однако добавить метод в класс String нельзя. Как добиться желаемого синтаксиса вызова?

С помощью отражения при запуске программы добавить реализацию недостающего метода классу String.
А чтобы код компилировался, вместо string везде использовать ключевое тип dynamic.

Никак нельзя. Придется вызывать данный метод через класс Utils.

Добавить ключевое слово this перед первым аргументов метода ComputeMD5Hash.

Изменить определение метода следующим образом: .

Добавить перед определением метода ключевое слово partial.

 


Какой из следующих методов отфильтрует массив типов, оставив в результате только типы, реализующие интерфейс IAutorun?



Определен следующий участок кода:

При его выполнении происходит ошибка приведения типов. Что нужно изменить, чтобы фрагмент работал гладко?

Поменять операцию Where() на следующую:

Изменить тип в определении первого столбца на

Убрать операцию AsEnumerable()

Поменять оперецию Where() на следующую:

Поменять оперецию Where() на следующую:


 

Необходимо сделать, чтобы зависимые сборки приложения загружались из папки dlls и папки bin.

Какое содержимое должен иметь конфигурационный файл приложения?


 

Сколько по умолчанию выводится десятичных знаков при вызове метода ToString() переменной типа System.Money?

Ни одного.

Два знака, остальные просто отбрасываются.

Всегда идет округдение до двух десятичных знаков.

Зависит от текущих региональных настроек приложения.

В библиотеке классов .NET Framework нет такого типа.

 

 

Какой интерфейс должен реализовывать класс, чтобы к переменным данного типа был применим оператор foreach?

IIterator

IEnumerable

IForEach

IArray

IReader

 

 

Какие операции linq призваны для пропуска определенного количества элементов последовательности и ограничения возвращаемого количества элементов?

Skip и Limit

Offset и Limit

Offset и Count

Offset и Take

Skip и Take

 


 

С помощью какого атрибута помечаются поля типа, не подлежащие сериализации?

SkipFieldAttribute

SupressSerializingAttribute

OnSerializingAttribute

NonSerializedAttribute

OptionalFieldAttribute


 

Каков результат выполнения следующего кода?

Base
Derived

Base

Программа содержит ошибку и не скомпилируется.

Derived
Base

Derived

 

 

Имеется массив, содержащий различные элементы управления. Было необходимо получить массив текстовых полей только элементов типа Label, для чего был составлен запрос через методы расширения linq.

На практике оказалось, что данный код приводит к исключению InvalidCastException. Как его изменить, чтобы он выполнял свою функцию без ошибок?

заменить ToArray() на ToArray()

убрать ToArray()

заменить Cast на SafeCast

заменить Cast на OfType

убрать Cast()


 

Какого свойства нет у объекта типа XElement?

NextNode

Parent

Document

Declaration

Value


 

Некоторые компоненты могут генерировать не CLS-совместимые исключения, которые не являются наследниками класса System.Exception.

Каким образом осуществляется перехват таких исключений в C# 4 по умолчанию (без использования атрибута сборки RuntimeCompatiblity для установки старого поведения)?

Необходимо использовать следующий код: catch (object) { ... }

Все не CLS-совместимые исключения оборачиваются в тип RuntimeWrapperException, который является наследником System.Exception, поэтому их можно поймать обычным способом.

CLS-совместимые исключения перехватываются в блоке catch (Exception) { ... }, а не CLS-совместимые - в блоке catch { ... }.

По умолчанию такие исключения нельзя поймать - они всегда приводят к аварийному завершению программы.

По умолчанию такие исключения игнорируются, и выполнение программы продолжается.


 

При осуществлении запроса к веб-сервису ему передается имя открытого метода, который необходимо вызвать, и его аргументы. Все методы находятся в статическом классе ServiceImpl.

Какой из вариантов кода правильно реализует вызов запрошенного метода, допуская что список аргументов не участвует в поиске метода?


 

Метод LoadFileIfExists должен открыть файл, если он существует, и вернуть его, иначе метод должен вернуть null.

Какой из следующих фрагментов кода реализует поставленную задачу?

 

Какой из приведенных фрагментов кода корректно изменяет количество элементов массива?


В каком месте в программе может быть определен делегат (тип)?

в любом месте, где может быть определен класс.

только как член интерфейса.

только как член класса или структуры.

только внутри абстрактного класса.

внутри методов и аксессоров.

 

 

С помощью какого класса осуществляется инициализация объекта для отмены долгой асинхронной операции?

System.Threading.Thread

System.Threading.Tasks.Task

System.Threading.CancelationRequest

System.Threading.ThreadAbort

System.Threading.CancelationTokenSource

 

 

У вас имеется сборка Lib.dll и конфигурационный файл для нее Lib.dll.config. Ключ для подписи сборки хранится в файла keys.snk.

Какой командой необходимо воспользоваться, чтобы создать корректную сборку политики издателя?

al /link:Lib.dll.config /out:policy.1.0.Lib.dll /key:keys.snk

al /link:Lib.dll.config,Lib.dll /out:policy.Lib.dll /key:keys.snk

sn /key:keys.snk /cfg:Lib.dll.config /link:Lib.dll /out:policy.1.0.Lib.dll

gacutil /i Lib.dll /link:Lib.dll.config /key:keys.snk

cl /link:Lib.dll.config /out:policy.Lib.dll /key:keys.snk


 

Могут ли несколько методов класса или интерфейса иметь одинаковые имена?

Да, если они имеют разные модификаторы доступа.

Да, если все они имеют разные типы/количество аргументов либо разные типы возвращаемых значений.

Нет.

Да, только если они являются виртуальными.

Да, если только все они имеют разные типы/количество аргументов.

 


Какие утверждения верны для отражения в стандартной сборке С#?

Отражение позволяет получить доступ к закрытым членам классов.

Обращение через отражение позволяет повысить производительность приложения в ущерб читабельности кода.

Отражение позволяет получить доступ к статическим полям классов.

Отражение позволяет вызвать только методы без аргументов.

Отражение позволяет добавлять произвольные члены в существующие типы.



К каким сущностям можно применять настраиваемые атрибуты?

К локальным переменным.

К аксессорам.

К возвращаемому значению метода.

К сборке.

К файлу исходного кода.

 


Что дает применение атрибута StructLayoutAttribute?

Позволяет указать, в какую сборку требуется скомпилировать структуру.

Позволяет указать класс из другой сборки, членом которого будет являться данный класс или структура.

Позволяет контроллировать, как поля структуры или класса будут расположены при экспорте в неуправляемую память.

Позволяет контроллировать, в какой области памяти будет размещаться экземпляр структуры: в стеке или куче.

Позволяет назначить классу поведение, подобное структуре.


 

Можно ли унаследоваться от класса, у которого нет конструктора без параметров? Если да, то как в этом случае определять конструкторы в порожденном классе?

Можно. В теле конструктора в нужном месте вставляется вызов любого конструктора базового класса, используя ключевое слово base.

Нельзя. Необходимо, чтобы базовый класс имел конструктор без параметров.

Можно. При определеннии конструктора, используя ключевое слово base, указываются аргументы для вызова конструктора базового класса.

В порожденном классе можно определить только конструктор с такими же параметрами, как и в базовом классе.
Соответствующий конструктор базового класса будет вызываться автоматически.

Можно. Конструкторы в порожденном классе определяются как обычно, а при создании экземпляра конструктор базового класса в таком случае не вызывается.

 

 

Есть ли в данном коде ошибка? Если да, то какая?

В классе Node необходимо определить дополнительные методы GetEnumerator().

Свойство Childs класса Node должно иметь аксессор set, иначе через него нельзя добавлять элементы в список.

Для класса Node вместо IEnumerable<ChildNode> необходимо наследоваться от интерфейса IEnumerable<Node>.

Из класса ChildNode нельзя добавить элементы в список через свойство Childs, т.к. сам список имеет модификатор private.

Данный код абсолютно корректен.


 

Укажите верные определения массивов:


 

Какой класс является базовым для конструкций синхронизации потоков режима ядра?

System.Threading.SpinLock

System.Threading.WaitHandle

System.Threading.Interlocked

System.Threading.Thread

System.Threading.SynchronizationContext

 

 

Что означает ключевое слово protected перед членом класса?

Ключевое слово protected может ставиться только перед классом.

Данный член класса будет доступен наследуемым классам.

Защищает память используемую членом класса от сборки мусора.

Данный член класса защищен от перезаписи.

Данное ключевое слово гарантирует, что даже при генерации исключения во время использования данного члена программа не будет аварийно завершена.


 

Необходимо подписаться на событие выгрузки домена приложения. Какой фрагмент кода это делает правильно?


 

Вам необходимо импортировать список товаров из файла формата csv, для чего был написан следующий код:

Однако в дальнейшем csv-парсер выдал ошибку. В режиме отладки вы увидели, что в переменной csv много некорректных символов, хотя в экселе и блокноте тот же файл открывается нормально. В чем проблема и как ее можно исправить?

Данный метод работает не всегда корректно, но сохранен для совместимости со старыми приложениями. Необходимо воспользоваться классом FileStream или другим стабильным классом.

Проблема в неверной кодировке. Классы из пространства имен System.IO всегда работают с файлами в формате UTF-8. Необходимо использовать стороннюю библиотеку.

Проблема в неверной кодировке. Необходимо вторым параметром указать верную кодировку файла.

Это следствие ошибок на диске. Необходимо выполнить проверку дисков.

Проблема в неверной кодировке. Строки в C# всегда хранятся в кодировке Unicode. Необходимо другими средствами привести файл к такой же кодировке.

 

 

В чем ошибка следующего фрагмента кода (методы SomeAction(FileStream) и Log(string) существуют и корректны)?

Переменную file необходимо объявлять внутри блока try.

Блок finally нельзя использовать, если есть блоки catch.

Нельзя указывать два блока catch.

Строчку throw необходимо заменить на throw e.

Блоки catch необходимо поменять местами.


 

Класс Example имеет открытое экземплярное событие SomeEvent. Из каких методов дозволено инициировать событие вызовом его метода Invoke?

Только из экземплярных методов класса Example.

Из методов любого класса.

Только из экземплярных методов класса Example и унаследованных от него.

Только из экземплярных методов класса Example и методов классов, определенных внутри класса Example.

Только из метода OnSomeEvent класса Example.

 

 

Метод Ancestors объекта типа XElement возвращает:

последовательность узлов-соседей, находящихся на одном уровне с данным элементом и расположенных перед ним.

последовательность всех родительских узлов.

последовательность всех родительских элементов и верхний объект типа XDocument.

последовательность всех родительских элементов.

последовательность элементов-соседей, находящихся на одном уровне с данным элементом и расположенных перед ним.

 


В какой момент вызывается статический конструктор и инициализируются статические поля классов?

При каждом обращении к любому статическому члену.

При запуске программы.

Перед первым обращением к статическим членам или перед первым создании экземпляра класса.

Статические поля инициализируются при старте программы, а статических конструкторов в C# не бывает.

Каждое статическое поле инициализируется непосредственно перед первым обращением к нему,
а статический конструктор вызывается перед первым обращением к любому члену класса.


 

Переменная xbooks хранит XML-дерево книг с их названиями и авторами, а также XML-комментариями, кем-то добавленными:

Какая строчка кода позволит разом удалить все XML-комментарии?


 

Почему следующий код может некорректно работать?

Класс SomeEventArgs должен быть определен как член класса Example.

Потому что открытый член события должен обращаться к другому, внутреннему члену события через аксессоры. Необходимо добавить закрытое событие в класс.

Если на событие не подписывался ни один обработчик, то переменная handlers будет равна null. Необходимо проверять её на null перед инициацией события.

Класс EventArgs имеет абстрактные поля и методы, которые необходимо реализовать в унаследованном классе для корректной работы.

Потому что он синтаксически неверен. Инициацию события необходимо делать так: handlers.Invoke(this, e);

 

 

Какие из следующих строчек асинхронно запускают задачу вывода в консоль, используя при этом пул потоков?

 

В следующем массиве хранятся некоторые типы. Флаг refType указывает, является ли данный тип ссылочным или значимым.


Какие из следующих запросов позволяют выбрать имена только ссылочных типов?


 

Какое имя должен иметь файл конфигурации, чтобы он автоматически загружался во время запуска программы?

config.xml

app.config

Для загрузки конфигурационного файла необходимо в программе писать соотвествующий код, поэтому имя не важно.

Такое же, как и исполняемый файл, и плюс ".config".

Любое, но его надо указать в исходном коде с помощью атрибута сборки AssemblyConfigurationAttribute.


 

В приложение динамически загружена сборка:

Какая из следующих строчек позволяет получить все (и только) публичные типы, определенные в сборке?

 

При каскадной генерации исключений, каким образом можно получить объект самого первого исключения, которое породило остальные?

Вызовом метода System.Diagnostics.Process.GetLastError().

Вызовом метода GetLastError() объекта типа Exception.

Вызовом метода GetBaseException() объекта типа Exception.

Чтением свойства System.Diagnostics.Process.BaseException.

Чтением свойства InnerException объекта типа Exception.

 

 

Каков результат выполнения следующего кода?

3, 1, 1, 1

3, 0, 1, 2

Во время выполнения программы будет сгенерировано исключение.

3, 1, 1, 2

0, 0, 1, 2


 

Необходимо, чтобы параметр типа T класса Activator<T> мог принимать только типы, реализующие интерфейс IWorkItem и имеющие открытый конструктор без параметров.

Какой фрагмент кода это реализует?


 

В программе определен следующий фрагмент кода:

Сейчас при возникновении исключения в методе SomeAction файл остается открытым. Как следует изменить код, чтобы файл гарантированно закрывался?



Метод PercentsToAbsoluteValue первым аргументом имеет целое число, которое должно быть от 0 до 100 включительно.

Необходимо, чтобы при передаче методу аргумента, выходящего за допустимые пределы, генерировалось исключение ArgumentOutOfRangeException.

Какой фрагмент кода реализует поставленную задачу верно?


 

В массиве weather хранится статистическая информация о температуре в разных городах на каждый день:

Какой запрос позволит получить информацию о минимальной, средней и максимальной температуре по каждому городу?



В классе определено событие SomeEvent:

Какая из следующих реализаций метода OnSomeEvent гарантированно вызовет все подписавшиеся обработчики события, даже если в каком-то из них произойдет исключение?


В программе определен следующий участок кода:

Предполагалось что в результирующей выборке окажутся только уникальные строки, однако фильтрации не произошло. Что нужно изменить в коде, чтобы он работал корректно?

Добавить в конец запроса операцию Single()

Убрать строчку AsEnumerable()

Использовать вместо Distinct() операцию Where()

Использовать вместо Dintinct() операцию RowDistinct()

Передать методу Distinct() первым аргументом объект DataRowComparer.Default

 


Что произойдет, если исключение будет сгенерировано во время выполнения блока catch или finally?

Происходит обработка как в случае, если бы данное исключение возникло после соответствующего блока try/catch/finally.

Происходит автоматичекое аварийное завершение приложения без выполенния других блоков try/catch/finally.

Внутри данных блоков исключения игнорируются.

Если исключение возникло в блоке catch, и вместе с ним используется блок finally, то выполняется его содержимое. Исключения в блоке finally игнорируются.

Происходит обработка возникнувшего исключения через те же блоки catch/finally, которые к нему привели.


 

Каково предназначение класса System.Threading.Interlocked?

Он позволяет осуществлять параллельное выполнение нескольких операций.

Он позволяет блокировать определенные потоки.

Он предоставляет доступ к пулу потоков.

Он позволяет выводить потоки из мертвой блокировки (deadlock).

Он позволяет осуществлять некоторые простые операции как атомарные.



Вам потребовалось, чтобы программа со всеми ресурсами локализации для разных языков хранились в единственной сборке. Удалось выяснить, что экземпляры класса ResourceManager имеют закрытое поле UseSatelliteAssem типа bool, позволяющее реализовать требуемое поведение. Это поле по умолчанию всегда равно true. Какой метод позволит изменить значение этого поля на false?

 

Каких классов нет в пространстве имен System.Reflection?

PropertyInfo

EventInfo

AppDomainInfo

NamespaceInfo

MemberInfo

 


Какие из следующих лямбда-выражений являются корректными?

 

Какие из следующих операций linq являются отложенными (НЕ осуществляют мгновенной выборки данных в момент вызова)?

First

OrderBy

ToArray

Take

Select


 

Каков результат выполнения следующей программы?

ICustomInterface2

ICustomInterface1
ICustomInterface2

IBaseInterface
ICustomInterface1
ICustomInterface2

Не будет выведен ни один интерфейс.

Программа содержит ошибку и не скомпилируется.


Вы можете обратится к нам напрямую, через:

skype По Skype: molodoyberkut
telegram По Telegram: @MolodoyBerkut
icq По ICQ: 657089516
По Viber: molodoyberkut

Или через форму обратной связи на нашем сайте
4.png