Является ли тип List потокбезопасной (thread-safe) коллекцией?
Варианты ответов:
Только при операциях чтения
Не является ни в каком случае
Только при операциях записи
Является во всех случаях
В чем различие между операцией cast (приведения типов) и оператором as?
Оператор "as" - это просто синтаксический сахар для "cast"
Cast изменяет диначеский тип, в то время как as изменяет статический тип
В случае ошибки cast выбрасывает исключение InvalidCastException, а оператор as возвращает null
В случае ошибки cast возвращает null, а оператор as выбрасывает исключение InvalidCastException
Какова алгоритмическая сложность для операций чтения и записи для коллекции Dictionary?
Чтение - О(1), запись - О(1)
Чтение - О(n), запись - О(1)
Чтение - О(n), запись - О(n)
Чтение - О(1), запись - О(n)
В чем различие между ключевыми словами "ref" и "out"?
Параметр с ключевым слово ref может быть не инициализирован, а параметр с ключевым словом out обязательно должен быть инииализирован до вызова метода, который использует эти параметры
Параметр с ключевым слово out может быть не инициализирован, а параметр с ключевым словом ref обязательно должен быть инииализирован до вызова метода, который использует эти параметры
Нет различий
Ключевым слово ref может использоваться только со значимыми типами (value types), а out может использоваться как со значимыми, так и с ссылочными типами.
Какой будет результат вызова следующего кода:
static void Main(string[] args) { object sync = new object(); var thread = new Thread(()=> { try { Work(); } finally { lock (sync) { Monitor.PulseAll(sync); } } }); thread.Start(); lock (sync) { Monitor.Wait(sync); } Console.WriteLine("test"); } private static void Work() { Thread.Sleep(1000); }
Варианты ответов:
Будет выброшено SynchronizationLockException
Слово "test" не будет напечатано, так как произойдет взаимоблокировка (deadlock)
В одних случаях может быть напечатано слово "test", а в других может произойти взаимоблокировка
Всегда будет напечатано слово "test"
Какой результат выполнения будет у следующего кода:
class MyCustomException : DivideByZeroException { } static void Main(string[] args) { try { Calc(); } catch (MyCustomException e) { Console.WriteLine("Catch MyCustomException"); throw; } catch (DivideByZeroException e) { Console.WriteLine("Catch Exception"); } Console.ReadLine(); } private static void Calc() { int result = 0; var x = 5; int y = 0; try { result = x / y; } catch (MyCustomException e) { Console.WriteLine("Catch DivideByZeroException"); throw; } catch (Exception e) { Console.WriteLine("Catch Exception"); } finally { throw new MyCustomException(); } }
Варианты ответов:
Catch DivideByZeroException, Catch MyCustomException
Catch Exception, Catch MyCustomException
Catch DivideByZeroException, Catch DivideByZeroException
Catch Exception, Catch DivideByZeroException