Собеседование Вуд Ричард. 1. Прокомментировать примеры кода и установить, какое сообщение будет выведено на консоль в каждом случае
Скачать 8.5 Kb.
|
1. Прокомментировать примеры кода и установить, какое сообщение будет выведено на консоль в каждом случае class A { public virtual void f() { Console.WriteLine("A"); } } class B : A { public override void f() { Console.WriteLine("B"); } } А. A a1 = new A(); a1.f(); Б. B b1 = new B(); b1.f(); В. A a2 = new B(); a2.f(); Г. B b2 = new A(); b2.f(); 2. Прокомментировать примеры кода и установить, какое сообщение будет выведено на консоль в каждом случае class A { public virtual void f() { Console.WriteLine("A"); } } class B : A { public new void f() { Console.WriteLine("B"); } } А. A a1 = new A(); a1.f(); Б. B b1 = new B(); b1.f(); В. A a2 = new B(); a2.f(); Г. B b2 = new A(); b2.f(); 3. Реализовать в классе A интерфейс IA interface IA { void f(); } class A { } 4. Реализовать в классе A интерфейсы IA и IB, рассмотреть два возможных решения поставленной задачи. interface IA { void f(); } interface IB { void f(); } class A { } class A { } 5. Возможен ли такой код? Ответ обосновать. int k = 5; object o = k; 6. Реализовать IDisposable в классе A. Учесть, что поле _hFile содержит хэндл открытого файла, который требуется освободить после уничтожения объекта класса A при помощи метода CloseHandle. class A { private IntPtr _hFile; private Stream _stream; static void CloseHandle(IntPtr h) { ... } } } 7. Прокомментировать следующий код. Корректен ли он с точки зрения компилятора c#? class A { private int _i = 0; void f() { lock ((object)_i) { … } } } 8. Реализовать класс A, который объявляет событие Ringing. Обработчикам этого события должен передаваться параметр типа int, информирующий о громкости звонка. В классе А реализовать также метод FireRingEvent, генерирующий событие Ringing. 9. Можно ли в WPF изменять состояние контролов из потока, отличного от потока, в котором они созданы? Ответ дополнить примером. 10. В чём отличие мьютекса от семафора? 11. Реализуйте метод f класса A таким образом, что бы для каждого экземпляра класса А исключить вход в метод Operation одновременно нескольких потоков. class A { private void Operation() { ... } public void f() { Operation(); } } 12. Является ли метод Update класса B потокобезопасным? Если да, обосновать почему, если нет, предложить потокобезопасное решение class B { private Int32 _value = 0; void Update() { _value += 1; } } 13. Написать код, который выкинет из экземпляра List |