У процесі підготовки до віддаленого співбесіди склав список можливих питань по Net. В результаті відповіді на третину питань вже були готові. Питання і відповіді під катами. Сподіваюся, допоможуть :)
TOP Питання на засипку
Загальні питання
1. Чи підтримує C # множинне спадкування?
gdr_live: С # підтримує множинне успадкування у вигляді наслідування від класу і декількох інтерфейсів, або просто від декількох інтерфейсів.
Але не підтримує спадкування від декількох класів.
2. Кому доступні змінні з модифікатором protected на рівні класу?
Будь-якому класу-спадкоємця.
3. Успадковуються чи змінні з модифікатором private?
Так, але вони не є доступними.
4. Опишіть модифікатор "protected internal".
Члени з таким модифікатором доступні класах, що знаходяться в тій же збірці і успадкованим від даного класу.
5. Назвіть клас .NET, від якого успадковуються всі класи?
System.Object.
6. Що означає термін immutable (незмінний)?
Це означає, що дані, що зберігаються в змінної, не можуть бути змінені. При цьому зауважте, що значення змінної може бути змінено - шляхом відмови від використання старих даних, які можуть бути змінені.
Оригінальні дані залишаються в пам'яті, а нові значення створюються знову, в новій області пам'яті. Приклад тип String
7. Яка різниця між класами System.String і System.Text.StringBuilder?
Дані, що зберігаються в класі System.String і є незмінні (immutable). Клас System.StringBuilder розроблявся так, щоб над змінною рядком можна було виконати безліч операцій. Тобто при кожній операції над об'єктом класу System.String відбувається перенесення даних в нову область пам'яті, що впливає на продуктивність програми.
8. Яку перевагу використання класу System.Text.StringBuilder перед System.String?
Клас StringBuilder більш ефективний у разі роботи з великою кількістю рядків. Об'єкти класу System.String незмінні, тому при кожній зміні рядка створюється новий об'єкт в пам'яті.
9. Чи можна зберігати різні типи даних в об'єкті класу System.Array?
az_spb_ru
Питання по класах
Питання по методам і властивостям
1. Назвіть явне ім'я параметра, переданого в метод set властивості класу?
value. Тип цього параметра визначається типом властивості.
2. Що означає ключове слово "virtual" для методу або властивості?
Те, що метод або властивість може бути перекрито.
3. Чим перекритий метод відрізняється від перевантаженого методу?
При перекривання методу ми змінюємо його поведінку в класі спадкоємця. Перевантаження методу просто призводить до використання іншого методу з тим же ім'ям всередині класу.
4. Чи можна оголосити перекритий метод статичним, якщо перекривається метод не є статичним?
Ні. Сигнатура віртуального методу повинна залишитися незмінною, крім заміни ключового слова virtual на ключове слово override.
5. Якими способами може бути перевантажений метод?
Інший тип параметрів, інше кількість параметрів, інший порядок параметрів. Фактично все може бути іншим, крім імені.
6. Якщо в базовому класі існує кілька перевантажених конструкторів і в класі-спадкоємець є кілька перевантажених конструкторів, чи можна викликати конструктор базового класу з конструктора класу-спадкоємця?
Так можна.
Події і делегати
Питання по XML-документації
Питання з налагодження й тестування
1. Які інструменти налагодження входять в .NET SDK?
CorDBG - відладчик командного рядка. Для використання цієї утиліти потрібно скомпілювати файл C # з ключем / debug.
DbgCLR - відладчик з графічним інтерфейсом. Visual Studio .NET використовує DbgCLR.
2. Яке відмінність між класами Debug і Trace?
Документація виглядає однаково. Однак, рекомендується використовувати клас Debug для збірки в режимі налагодження, а Trace - як для налагодження, так і для остаточного складання.
3. Навіщо в класі System.Diagnostics.TraceSwitcher потрібні п'ять рівнів трасування?
Дампи трасування можуть бути дуже великими. Звідси виникає ризик браку місця на диску для постійно працюючих додатків. П'ять рівнів трасування від None (нічого) до Verbose (все) дозволяють налаштувати зберігається трасування інформацію точно у відповідності з нашими потребами.
4. Куди перенаправляється висновок класу TextWriter-TraceListener?
На консоль або в текстовий файл, в залежності від параметра, переданого конструктору.
5. Яким чином відбувається налагодження програми ASP.NET?
Шляхом приєднання процесу aspnet_wp.exe до отладчику DbgClr.
6. Які три типи тестів ви повинні виконати в процесі тестування збірки?
1. Позитивний тест (коректні дані - коректний висновок).
2. Негативний тест (некоректні або неповні дані - коректна обробка).
3. Винятковий тест (генерація винятків і їх коректна обробка).
7. Чи можна змінити значення змінної під час налагодження програми C #?
Так.
8. Що виведе цей код (чур в студії не підглядати.):
---
XmlDocument x = new XmlDocument ();
x.LoadXml ( "");
Console.WriteLine (x.ToString ());
Console.ReadKey ();
---
marat_yuldashev: приклад тип - об'єкт - string